Rev 3358 | Rev 3365 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React, { createContext, useEffect } from 'react'
import { useFetch } from '@hooks'
export const HabitsUrlsContext = createContext()
export default function HabitsUrlsProvider({ children }) {
const {
data,
isLoading: loading,
mutate
} = useFetch('/habits', {
categories: [],
emojis: []
})
const { categories, emojis, ...links } = data
useEffect(() => {
if (!categories.length || !emojis.length) return
const categoriesWithEmojis = categories.map((c) => ({ ...c, emojis }))
mutate({ ...data, categories: categoriesWithEmojis })
}, [loading])
const selectEmoji = (categoryUuid, emojiCode) => {
const newCategories = categories.map((category) => {
if (category.uuid === categoryUuid) {
const emojis = category.emojis.filter((e) => e.code === emojiCode)
return { ...category, emojis }
}
return category
})
mutate({ ...data, categories: newCategories })
}
return (
<HabitsUrlsContext.Provider
value={{
loading,
categories,
links,
selectEmoji
}}
>
{children}
</HabitsUrlsContext.Provider>
)
}