From 056c6d91230298086bbc7a8a8c94b34f29f284d3 Mon Sep 17 00:00:00 2001 From: Alex Terentiev Date: Mon, 30 Nov 2020 14:46:46 -0800 Subject: [PATCH] FilePicker stopped working after #724 fix --- src/common/utilities/GeneralHelper.ts | 26 +++++++++++++++++++ .../SiteFilePickerTab/SiteFilePickerTab.tsx | 5 ++-- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/common/utilities/GeneralHelper.ts b/src/common/utilities/GeneralHelper.ts index e88c0a8b3..272a055a5 100644 --- a/src/common/utilities/GeneralHelper.ts +++ b/src/common/utilities/GeneralHelper.ts @@ -325,3 +325,29 @@ export class GeneralHelper { return o[c]; } } + +export function urlCombine(urlStart: string, urlFinish: string, escapeFinish: boolean = true): string { + let url = urlStart; + if (url.lastIndexOf('/') === url.length - 1) { + url = url.slice(0, -1); + } + if (urlFinish) { + if (escapeFinish) { + const escapeFunc = (str: string) => { + return encodeURIComponent(unescape(str)) + .replace(/[!'()*]/g, escape) + .replace(/\./g, '%2E'); + }; + + urlFinish = urlFinish.split('/').map(escapeFunc).join('/'); + } + + if (urlFinish.indexOf('/') !== 0) { + urlFinish = `/${urlFinish}`; + } + + url += urlFinish; + } + + return url; +} diff --git a/src/controls/filePicker/SiteFilePickerTab/SiteFilePickerTab.tsx b/src/controls/filePicker/SiteFilePickerTab/SiteFilePickerTab.tsx index 194320385..e0ac3eeeb 100644 --- a/src/controls/filePicker/SiteFilePickerTab/SiteFilePickerTab.tsx +++ b/src/controls/filePicker/SiteFilePickerTab/SiteFilePickerTab.tsx @@ -12,6 +12,7 @@ import { IFilePickerResult, FilePickerBreadcrumbItem } from '../FilePicker.types import styles from './SiteFilePickerTab.module.scss'; import * as strings from 'ControlStrings'; +import { urlCombine } from '../../../common/utilities'; export default class SiteFilePickerTab extends React.Component { constructor(props: ISiteFilePickerTabProps) { @@ -28,7 +29,7 @@ export default class SiteFilePickerTab extends React.Component