Skip to content

Commit 056c6d9

Browse files
committed
FilePicker stopped working after #724 fix
1 parent 56d7e01 commit 056c6d9

File tree

2 files changed

+29
-2
lines changed

2 files changed

+29
-2
lines changed

src/common/utilities/GeneralHelper.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -325,3 +325,29 @@ export class GeneralHelper {
325325
return o[c];
326326
}
327327
}
328+
329+
export function urlCombine(urlStart: string, urlFinish: string, escapeFinish: boolean = true): string {
330+
let url = urlStart;
331+
if (url.lastIndexOf('/') === url.length - 1) {
332+
url = url.slice(0, -1);
333+
}
334+
if (urlFinish) {
335+
if (escapeFinish) {
336+
const escapeFunc = (str: string) => {
337+
return encodeURIComponent(unescape(str))
338+
.replace(/[!'()*]/g, escape)
339+
.replace(/\./g, '%2E');
340+
};
341+
342+
urlFinish = urlFinish.split('/').map(escapeFunc).join('/');
343+
}
344+
345+
if (urlFinish.indexOf('/') !== 0) {
346+
urlFinish = `/${urlFinish}`;
347+
}
348+
349+
url += urlFinish;
350+
}
351+
352+
return url;
353+
}

src/controls/filePicker/SiteFilePickerTab/SiteFilePickerTab.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import { IFilePickerResult, FilePickerBreadcrumbItem } from '../FilePicker.types
1212

1313
import styles from './SiteFilePickerTab.module.scss';
1414
import * as strings from 'ControlStrings';
15+
import { urlCombine } from '../../../common/utilities';
1516

1617
export default class SiteFilePickerTab extends React.Component<ISiteFilePickerTabProps, ISiteFilePickerTabState> {
1718
constructor(props: ISiteFilePickerTabProps) {
@@ -28,7 +29,7 @@ export default class SiteFilePickerTab extends React.Component<ISiteFilePickerTa
2829
this.state = {
2930
filePickerResult: null,
3031
libraryAbsolutePath: undefined,
31-
libraryUrl: '/Shared%20Documents',
32+
libraryUrl: urlCombine(props.context.pageContext.web.serverRelativeUrl, '/Shared%20Documents'),
3233
libraryPath: undefined,
3334
folderName: strings.DocumentLibraries,
3435
breadcrumbItems: [breadcrumbSiteNode]
@@ -182,7 +183,7 @@ export default class SiteFilePickerTab extends React.Component<ISiteFilePickerTa
182183
}
183184
this.setState({
184185
libraryAbsolutePath: library.absoluteUrl,
185-
libraryUrl: library.webRelativeUrl,
186+
libraryUrl: library.serverRelativeUrl,
186187
libraryPath: library.serverRelativeUrl,
187188
breadcrumbItems
188189
});

0 commit comments

Comments
 (0)