qcast-front/src/hooks/useMessage.js
2024-10-18 18:10:37 +09:00

44 lines
1.3 KiB
JavaScript

import { useEffect } from 'react'
import { useRecoilValue } from 'recoil'
import { appMessageStore, globalLocaleStore } from '@/store/localeAtom'
import KO from '@/locales/ko.json'
import JA from '@/locales/ja.json'
const SESSION_STORAGE_MESSAGE_KEY = 'QCAST_MESSAGE_STORAGE'
export const useMessage = () => {
// const globalLocale = useRecoilValue(globalLocaleState)
// const appMessageState = useRecoilValue(appMessageStore)
const globalLocale = useRecoilValue(globalLocaleStore)
const appMessageState = globalLocale === 'ko' ? KO : JA
const getMessage = (key, args = []) => {
// if (sessionStorage.getItem(SESSION_STORAGE_MESSAGE_KEY) === null) {
// if (globalLocale === 'ko') {
// setSessionMessage(JSON.stringify(KO))
// } else {
// setSessionMessage(JSON.stringify(JA))
// }
// }
// const sessionMessage = getSessionMessage()
// const message = sessionMessage[key] || key
const message = appMessageState[key] || key
return args.reduce((acc, arg, i) => {
return acc.replaceAll(`{${i}}`, arg)
}, message)
}
const setSessionMessage = (sessionMessage) => {
sessionStorage.setItem(SESSION_STORAGE_MESSAGE_KEY, sessionMessage)
}
const getSessionMessage = () => {
return JSON.parse(sessionStorage.getItem(SESSION_STORAGE_MESSAGE_KEY))
}
return { getMessage }
}