Skip to content

Commit ce0c972

Browse files
committed
Fix for #117
1 parent 3c8016b commit ce0c972

File tree

3 files changed

+25
-22
lines changed

3 files changed

+25
-22
lines changed

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@
2121
"@pnp/odata": "^1.0.1",
2222
"@pnp/sp": "^1.0.1",
2323
"@pnp/telemetry-js": "1.0.0",
24-
"lodash": "^4.17.4"
24+
"lodash": "^4.17.4",
25+
"office-ui-fabric-react": "~5.122.0"
2526
},
2627
"devDependencies": {
2728
"@microsoft/decorators": "~1.3.0",

src/controls/peoplepicker/IPeoplePicker.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import { IPersonaProps, DirectionalHint } from "office-ui-fabric-react";
21
import { WebPartContext } from '@microsoft/sp-webpart-base';
2+
import { DirectionalHint } from "office-ui-fabric-react/lib/common/DirectionalHint";
3+
import { IPersonaProps } from "office-ui-fabric-react/lib/components/Persona/Persona.types";
34

45
/**
56
* Used to display a placeholder in case of no or temporary content. Button is optional.
@@ -91,7 +92,7 @@ export interface IPeoplePickerUserItem {
9192
id: string;
9293
imageUrl: string;
9394
imageInitials: string;
94-
primaryText: string; // name
95+
text: string; // name
9596
secondaryText: string; // role
9697
tertiaryText: string; // status
9798
optionalText: string; // anything

src/controls/peoplepicker/PeoplePickerComponent.tsx

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,21 @@
11
import * as strings from 'ControlStrings';
22
import * as React from 'react';
33
import { IPeoplePickerProps, IPeoplePickerState, IPeoplePickerUserItem } from './IPeoplePicker';
4-
import { IPersonaProps } from 'office-ui-fabric-react/lib/Persona';
54
import { TooltipHost, DirectionalHint } from 'office-ui-fabric-react/lib/Tooltip';
6-
import { IBasePickerSuggestionsProps } from 'office-ui-fabric-react/lib/Pickers';
75
import { NormalPeoplePicker } from 'office-ui-fabric-react/lib/components/pickers/PeoplePicker/PeoplePicker';
8-
import { IPersonaWithMenu } from 'office-ui-fabric-react/lib/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItem.Props';
9-
import { ValidationState } from 'office-ui-fabric-react/lib/Pickers';
10-
import { MessageBar, MessageBarType } from 'office-ui-fabric-react/lib/MessageBar';
6+
import { MessageBar } from 'office-ui-fabric-react/lib/MessageBar';
117
import { SPHttpClient } from '@microsoft/sp-http';
128
import styles from './PeoplePickerComponent.module.scss';
139
import * as telemetry from '../../common/telemetry';
1410
import { assign } from 'office-ui-fabric-react/lib/Utilities';
1511
import { IUsers } from './IUsers';
16-
import { Label } from 'office-ui-fabric-react/lib/Label';
12+
import { Label } from 'office-ui-fabric-react/lib/components/Label';
1713
import { Environment, EnvironmentType } from "@microsoft/sp-core-library";
14+
import { IBasePickerSuggestionsProps } from "office-ui-fabric-react/lib/components/pickers/BasePicker.types";
15+
import { IPersonaWithMenu } from "office-ui-fabric-react/lib/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItem.types";
16+
import { IPersonaProps } from "office-ui-fabric-react/lib/components/Persona/Persona.types";
17+
import { MessageBarType } from "office-ui-fabric-react/lib/components/MessageBar";
18+
import { ValidationState } from 'office-ui-fabric-react/lib/components/pickers/BasePicker.types';
1819

1920
const suggestionProps: IBasePickerSuggestionsProps = {
2021
suggestionsHeaderText: 'Suggested People',
@@ -82,7 +83,7 @@ export class PeoplePicker extends React.Component<IPeoplePickerProps, IPeoplePic
8283
id: "10dfa208-d7d4-4aef-a7ea-f9e4bb1b85c1",
8384
imageUrl: "",
8485
imageInitials: "RF",
85-
primaryText: "Roger Federer",
86+
text: "Roger Federer",
8687
secondaryText: "[email protected]",
8788
tertiaryText: "",
8889
optionalText:""
@@ -91,7 +92,7 @@ export class PeoplePicker extends React.Component<IPeoplePickerProps, IPeoplePic
9192
id: "10dfa208-d7d4-4aef-a7ea-f9e4bb1b85c2",
9293
imageUrl: "",
9394
imageInitials: "RN",
94-
primaryText: "Rafael Nadal",
95+
text: "Rafael Nadal",
9596
secondaryText: "[email protected]",
9697
tertiaryText: "",
9798
optionalText:""
@@ -100,7 +101,7 @@ export class PeoplePicker extends React.Component<IPeoplePickerProps, IPeoplePic
100101
id: "10dfa208-d7d4-4aef-a7ea-f9e4bb1b85c3",
101102
imageUrl: "",
102103
imageInitials: "ND",
103-
primaryText: "Novak Djokovic",
104+
text: "Novak Djokovic",
104105
secondaryText: "[email protected]",
105106
tertiaryText: "",
106107
optionalText:""
@@ -109,15 +110,15 @@ export class PeoplePicker extends React.Component<IPeoplePickerProps, IPeoplePic
109110
id: "10dfa208-d7d4-4aef-a7ea-f9e4bb1b85c4",
110111
imageUrl: "",
111112
imageInitials: "JP",
112-
primaryText: "Juan Martin del Potro",
113+
text: "Juan Martin del Potro",
113114
secondaryText: "[email protected]",
114115
tertiaryText: "",
115116
optionalText:""
116117
});
117118

118-
let personaList: IPersonaWithMenu[] = [];
119+
let personaList: IPersonaProps[] = [];
119120
for (const persona of _fakeUsers) {
120-
let personaWithMenu: IPersonaWithMenu = {};
121+
let personaWithMenu: IPersonaProps = {};
121122
assign(personaWithMenu, persona);
122123
personaList.push(personaWithMenu);
123124
}
@@ -162,7 +163,7 @@ export class PeoplePicker extends React.Component<IPeoplePickerProps, IPeoplePic
162163
id: items.value[i].Id.toString(),
163164
imageUrl: this.generateUserPhotoLink(items.value[i].Email),
164165
imageInitials: "",
165-
primaryText: items.value[i].Title, // name
166+
text: items.value[i].Title, // name
166167
secondaryText: items.value[i].Email, // email
167168
tertiaryText: "", // status
168169
optionalText: "" // anything
@@ -171,19 +172,19 @@ export class PeoplePicker extends React.Component<IPeoplePickerProps, IPeoplePic
171172

172173
// Set Default selected persons
173174
let defaultUsers : any = [];
174-
let defaultPeopleList: IPersonaWithMenu[] = [];
175+
let defaultPeopleList: IPersonaProps[] = [];
175176
if (this.props.defaultSelectedUsers) {
176177
defaultUsers = this.getDefaultUsers(userValuesArray, this.props.defaultSelectedUsers);
177178
for (const persona of defaultUsers) {
178-
let selectedPeople: IPersonaWithMenu = {};
179+
let selectedPeople: IPersonaProps = {};
179180
assign(selectedPeople, persona);
180181
defaultPeopleList.push(selectedPeople);
181182
}
182183
}
183184

184-
let personaList: IPersonaWithMenu[] = [];
185+
let personaList: IPersonaProps[] = [];
185186
for (const persona of userValuesArray) {
186-
let personaWithMenu: IPersonaWithMenu = {};
187+
let personaWithMenu: IPersonaProps = {};
187188
assign(personaWithMenu, persona);
188189
personaList.push(personaWithMenu);
189190
}
@@ -292,7 +293,7 @@ export class PeoplePicker extends React.Component<IPeoplePickerProps, IPeoplePic
292293
* @param filterText
293294
*/
294295
private _doesTextStartWith(text: string, filterText: string): boolean {
295-
return text.toLowerCase().indexOf(filterText.toLowerCase()) === 0;
296+
return text && text.toLowerCase().indexOf(filterText.toLowerCase()) === 0;
296297
}
297298

298299
/**
@@ -302,7 +303,7 @@ export class PeoplePicker extends React.Component<IPeoplePickerProps, IPeoplePic
302303
* @param filterText
303304
*/
304305
private _doesTextContains(text: string, filterText: string): boolean {
305-
return text.toLowerCase().indexOf(filterText.toLowerCase()) > 0;
306+
return text && text.toLowerCase().indexOf(filterText.toLowerCase()) > 0;
306307
}
307308

308309
/**

0 commit comments

Comments
 (0)