Feature/wrap logging * feat: change all logging to go through our own logger function so that we can control log levels * move packages/trpc to using our own logger * merge Approved-by: Linus Flood
42 lines
836 B
TypeScript
42 lines
836 B
TypeScript
"use client"
|
|
|
|
import { IntlProvider } from "react-intl"
|
|
|
|
import { logger } from "@scandic-hotels/common/logger"
|
|
|
|
import type { ClientIntlProviderProps } from "@/types/i18n"
|
|
|
|
const logged: Record<string, boolean> = {}
|
|
|
|
export default function ClientIntlProvider({
|
|
children,
|
|
locale,
|
|
defaultLocale,
|
|
messages,
|
|
}: ClientIntlProviderProps) {
|
|
return (
|
|
<IntlProvider
|
|
locale={locale}
|
|
defaultLocale={defaultLocale}
|
|
messages={messages}
|
|
onError={(err) => {
|
|
let msg = err.message
|
|
|
|
if (err.code === "MISSING_TRANSLATION") {
|
|
const id = err.descriptor?.id
|
|
if (id) {
|
|
msg = id
|
|
}
|
|
}
|
|
|
|
if (!logged[msg]) {
|
|
logged[msg] = true
|
|
logger.warn("IntlProvider", err)
|
|
}
|
|
}}
|
|
>
|
|
{children}
|
|
</IntlProvider>
|
|
)
|
|
}
|