mirror of
https://github.com/gosticks/plane.git
synced 2025-10-16 12:45:33 +00:00
* fix: adding language support package * fix: language support implementation using mobx * fix: adding more languages for support * fix: profile settings translations * feat: added language support for sidebar and user settings * feat: added language support for deactivation modal * fix: added project sync after transfer issues (#6200) * code refactor and improvement (#6203) * chore: package code refactoring * chore: component restructuring and refactor * chore: comment create improvement * refactor: enhance workspace and project wrapper modularity (#6207) * [WEB-2678]feat: added functionality to add labels directly from dropdown (#6211) * enhancement:added functionality to add features directly from dropdown * fix: fixed import order * fix: fixed lint errors * chore: added common component for project activity (#6212) * chore: added common component for project activity * fix: added enum * fix: added enum for initiatives * - Do not clear temp files that are locked. (#6214) - Handle edge cases in sync workspace * fix: labels empty state for drop down (#6216) * refactor: remove cn helper function from the editor package (#6217) * * feat: added language support to issue create modal in sidebar * fix: project activity type * * fix: added missing translations * fix: modified translation for plurals * fix: fixed spanish translation * dev: language type error in space user profile types * fix: type fixes * chore: added alpha tag --------- Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com> Co-authored-by: Anmol Singh Bhatia <121005188+anmolsinghbhatia@users.noreply.github.com> Co-authored-by: Prateek Shourya <prateekshourya29@gmail.com> Co-authored-by: Akshita Goyal <36129505+gakshita@users.noreply.github.com> Co-authored-by: Satish Gandham <satish.iitg@gmail.com> Co-authored-by: Aaryan Khandelwal <65252264+aaryan610@users.noreply.github.com> Co-authored-by: gurusinath <gurusainath007@gmail.com>
68 lines
2.2 KiB
TypeScript
68 lines
2.2 KiB
TypeScript
import { ReactNode, useEffect, FC } from "react";
|
|
import { observer } from "mobx-react";
|
|
import { useParams } from "next/navigation";
|
|
import { useTheme } from "next-themes";
|
|
import { useTranslation, Language } from "@plane/i18n";
|
|
// helpers
|
|
import { applyTheme, unsetCustomCssVariables } from "@/helpers/theme.helper";
|
|
// hooks
|
|
import { useRouterParams, useAppTheme, useUserProfile } from "@/hooks/store";
|
|
|
|
type TStoreWrapper = {
|
|
children: ReactNode;
|
|
};
|
|
|
|
const StoreWrapper: FC<TStoreWrapper> = observer((props) => {
|
|
const { children } = props;
|
|
// theme
|
|
const { setTheme } = useTheme();
|
|
// router
|
|
const params = useParams();
|
|
// store hooks
|
|
const { setQuery } = useRouterParams();
|
|
const { sidebarCollapsed, toggleSidebar } = useAppTheme();
|
|
const { data: userProfile } = useUserProfile();
|
|
const { changeLanguage } = useTranslation();
|
|
|
|
/**
|
|
* Sidebar collapsed fetching from local storage
|
|
*/
|
|
useEffect(() => {
|
|
const localValue = localStorage && localStorage.getItem("app_sidebar_collapsed");
|
|
const localBoolValue = localValue ? (localValue === "true" ? true : false) : false;
|
|
if (localValue && sidebarCollapsed === undefined) toggleSidebar(localBoolValue);
|
|
}, [sidebarCollapsed, setTheme, toggleSidebar]);
|
|
|
|
/**
|
|
* Setting up the theme of the user by fetching it from local storage
|
|
*/
|
|
useEffect(() => {
|
|
if (!userProfile?.theme?.theme) return;
|
|
const currentTheme = userProfile?.theme?.theme || "system";
|
|
const currentThemePalette = userProfile?.theme?.palette;
|
|
if (currentTheme) {
|
|
setTheme(currentTheme);
|
|
if (currentTheme === "custom" && currentThemePalette) {
|
|
applyTheme(
|
|
currentThemePalette !== ",,,," ? currentThemePalette : "#0d101b,#c5c5c5,#3f76ff,#0d101b,#c5c5c5",
|
|
false
|
|
);
|
|
} else unsetCustomCssVariables();
|
|
}
|
|
}, [userProfile?.theme?.theme, userProfile?.theme?.palette, setTheme]);
|
|
|
|
useEffect(() => {
|
|
if (!userProfile?.language) return;
|
|
changeLanguage(userProfile?.language as Language);
|
|
}, [userProfile?.language, changeLanguage]);
|
|
|
|
useEffect(() => {
|
|
if (!params) return;
|
|
setQuery(params);
|
|
}, [params, setQuery]);
|
|
|
|
return <>{children}</>;
|
|
});
|
|
|
|
export default StoreWrapper;
|