Allow recents to store availability information
This commit is contained in:
parent
f95e794cb7
commit
859967d7d3
|
|
@ -19,7 +19,7 @@ const Recents = () => {
|
||||||
return recents?.length ? <Section id="recents">
|
return recents?.length ? <Section id="recents">
|
||||||
<Content>
|
<Content>
|
||||||
<h2>{t('home:recently_visited')}</h2>
|
<h2>{t('home:recently_visited')}</h2>
|
||||||
{recents.map(event => (
|
{recents.slice(0, 5).map(event => (
|
||||||
<Link className={styles.recent} href={`/${event.id}`} key={event.id}>
|
<Link className={styles.recent} href={`/${event.id}`} key={event.id}>
|
||||||
<span className={styles.name}>{event.name}</span>
|
<span className={styles.name}>{event.name}</span>
|
||||||
<span
|
<span
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,10 @@ interface RecentEvent {
|
||||||
id: string
|
id: string
|
||||||
name: string
|
name: string
|
||||||
created_at: number
|
created_at: number
|
||||||
|
user?: {
|
||||||
|
name: string
|
||||||
|
availability: string[]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
interface RecentsStore {
|
interface RecentsStore {
|
||||||
|
|
@ -19,16 +23,12 @@ const useRecentsStore = create<RecentsStore>()(persist(
|
||||||
set => ({
|
set => ({
|
||||||
recents: [],
|
recents: [],
|
||||||
|
|
||||||
addRecent: event => set(state => {
|
addRecent: event => set(state => ({
|
||||||
const recents = state.recents.filter(e => e.id !== event.id)
|
recents: [event, ...state.recents.filter(e => e.id !== event.id)],
|
||||||
recents.unshift(event)
|
})),
|
||||||
recents.length = Math.min(recents.length, 5)
|
removeRecent: id => set(state => ({
|
||||||
return { recents }
|
recents: state.recents.filter(e => e.id !== id),
|
||||||
}),
|
})),
|
||||||
removeRecent: id => set(state => {
|
|
||||||
const recents = state.recents.filter(e => e.id !== id)
|
|
||||||
return { recents }
|
|
||||||
}),
|
|
||||||
clearRecents: () => set({ recents: [] }),
|
clearRecents: () => set({ recents: [] }),
|
||||||
}),
|
}),
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue