| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 | import { useTranslation } from 'react-i18next'import type { TFunction } from 'i18next'import {  categoryKeys,  tagKeys,} from './constants'type Tag = {  name: string  label: string}export const useTags = (translateFromOut?: TFunction) => {  const { t: translation } = useTranslation()  const t = translateFromOut || translation  const tags = tagKeys.map((tag) => {    return {      name: tag,      label: t(`pluginTags.tags.${tag}`),    }  })  const tagsMap = tags.reduce((acc, tag) => {    acc[tag.name] = tag    return acc  }, {} as Record<string, Tag>)  return {    tags,    tagsMap,  }}type Category = {  name: string  label: string}export const useCategories = (translateFromOut?: TFunction) => {  const { t: translation } = useTranslation()  const t = translateFromOut || translation  const categories = categoryKeys.map((category) => {    if (category === 'agent-strategy') {      return {        name: 'agent-strategy',        label: t('plugin.category.agents'),      }    }    return {      name: category,      label: t(`plugin.category.${category}s`),    }  })  const categoriesMap = categories.reduce((acc, category) => {    acc[category.name] = category    return acc  }, {} as Record<string, Category>)  return {    categories,    categoriesMap,  }}export const useSingleCategories = (translateFromOut?: TFunction) => {  const { t: translation } = useTranslation()  const t = translateFromOut || translation  const categories = categoryKeys.map((category) => {    if (category === 'agent-strategy') {      return {        name: 'agent-strategy',        label: t('plugin.categorySingle.agent'),      }    }    return {      name: category,      label: t(`plugin.categorySingle.${category}`),    }  })  const categoriesMap = categories.reduce((acc, category) => {    acc[category.name] = category    return acc  }, {} as Record<string, Category>)  return {    categories,    categoriesMap,  }}
 |