fix build client package

This commit is contained in:
Marco Beretta 2025-07-10 23:45:52 +02:00
parent 9f270127d3
commit 0b7dd55797
No known key found for this signature in database
GPG key ID: D918033D8E74CC11
22 changed files with 148 additions and 565 deletions

View file

@ -1,9 +1,9 @@
//ThemeContext.js
// source: https://plainenglish.io/blog/light-and-dark-mode-in-react-web-application-with-tailwind-css-89674496b942
import { useSetRecoilState } from 'recoil';
import { useSetAtom } from 'jotai';
import React, { createContext, useState, useEffect } from 'react';
import { getInitialTheme, applyFontSize } from '~/utils';
import store from '~/store';
import { fontSizeAtom } from '~/store';
type ProviderValue = {
theme: string;
@ -26,9 +26,15 @@ export const isDark = (theme: string): boolean => {
export const ThemeContext = createContext<ProviderValue>(defaultContextValue);
export const ThemeProvider = ({ initialTheme, children }) => {
export const ThemeProvider = ({
initialTheme,
children,
}: {
initialTheme?: string;
children: React.ReactNode;
}) => {
const [theme, setTheme] = useState(getInitialTheme);
const setFontSize = useSetRecoilState(store.fontSize);
const setFontSize = useSetAtom(fontSizeAtom);
const rawSetTheme = (rawTheme: string) => {
const root = window.document.documentElement;

View file

@ -1,14 +1,14 @@
import { useEffect } from 'react';
import { TOptions } from 'i18next';
import { useRecoilValue } from 'recoil';
import { useAtomValue } from 'jotai';
import { useTranslation } from 'react-i18next';
import { resources } from '~/locales/i18n';
import store from '~/store';
import { langAtom } from '~/store';
export type TranslationKeys = keyof typeof resources.en.translation;
export default function useLocalize() {
const lang = useRecoilValue(store.lang);
const lang = useAtomValue(langAtom);
const { t, i18n } = useTranslation();
useEffect(() => {

View file

@ -1,11 +1,11 @@
import { useRecoilState } from 'recoil';
import { useAtom } from 'jotai';
import { useRef, useEffect } from 'react';
import type { TShowToast } from '~/common';
import { NotificationSeverity } from '~/common';
import store from '~/store';
import { toastState, type ToastState } from '~/store';
export default function useToast(showDelay = 100) {
const [toast, setToast] = useRecoilState(store.toastState);
const [toast, setToast] = useAtom(toastState);
const showTimerRef = useRef<number | null>(null);
const hideTimerRef = useRef<number | null>(null);
@ -45,7 +45,7 @@ export default function useToast(showDelay = 100) {
});
// Hides the toast after the specified duration
hideTimerRef.current = window.setTimeout(() => {
setToast((prevToast) => ({ ...prevToast, open: false }));
setToast((prevToast: ToastState) => ({ ...prevToast, open: false }));
}, duration);
}, showDelay);
};