lowercase and strip special chars from slugs

This commit is contained in:
Collin M. Barrett 2019-09-11 18:47:48 -05:00
parent e054490a55
commit 458880baec
3 changed files with 6 additions and 2 deletions

View file

@ -3,12 +3,14 @@ import React from 'react';
import { RouteComponentProps } from 'react-router-dom';
import slugify from 'slugify';
import { SlugifyOptions } from '../constants';
interface Props {
listName: string;
};
export const ListInfoButton = (props: RouteComponentProps & Props) => {
const listPath = `/lists/${slugify(props.listName)}`;
const listPath = `/lists/${slugify(props.listName, SlugifyOptions)}`;
return (
<Button
type="primary"

View file

@ -0,0 +1 @@
export const SlugifyOptions = { remove: /[^a-zA-Z0-9- ]/g, lower: true }

View file

@ -1,11 +1,12 @@
import slugify from 'slugify';
import { SlugifyOptions } from '../constants';
import { List } from '../interfaces/List';
import { useApiData } from './useApiData';
export const useLists = () => {
const lists = useApiData<List[]>("/api/v1/lists");
lists && lists.forEach(l => l.slug = slugify(l.name));
lists && lists.forEach(l => l.slug = slugify(l.name, SlugifyOptions));
return (lists || [])
.sort((a: List, b: List) => a.name.localeCompare(b.name));
};