diff --git a/src/ParentWidget.js b/src/ParentWidget.js index db112885..3200624c 100644 --- a/src/ParentWidget.js +++ b/src/ParentWidget.js @@ -45,19 +45,7 @@ const Option = (props) => { export const sanitizePath = (path) => { const replacement = '-'; - const sanitizedPath = slugify(path.toLowerCase(), replacement); - - // Remove any doubled or leading/trailing replacement characters (that were added in the sanitizers). - const doubleReplacement = new RegExp(`(?:${replacement})+`, 'g'); - const trailingReplacement = new RegExp(`${replacement}$`); - const leadingReplacement = new RegExp(`^${replacement}`); - - const normalizedPath = sanitizedPath - .replace(doubleReplacement, replacement) - .replace(leadingReplacement, '') - .replace(trailingReplacement, ''); - - return normalizedPath; + return slugify(path.replace(/\./g, replacement), { replacement, lower: true }); }; export class ParentControl extends React.Component { diff --git a/src/ParentWidget.test.js b/src/ParentWidget.test.js index c9c3b596..a053bb22 100644 --- a/src/ParentWidget.test.js +++ b/src/ParentWidget.test.js @@ -28,4 +28,8 @@ describe('sanitizePath', () => { it('should keep diacritis and remove whitespace, trailing and leading characters', () => { expect(sanitizePath('?ăștia sunteți voi ? ')).toBe('astia-sunteti-voi'); }); + + it('should remove "."s', () => { + expect(sanitizePath('who are.we')).toBe('who-are-we'); + }); });