mirror of
https://github.com/Sonny93/my-links.git
synced 2025-12-10 15:35:35 +00:00
* feat(wip): translation * fix: some i18n errors + use ssr translation * fix: i18next implementation * fix: tsc errors * feat: i18n middleware * feat: translate link view home page * feat: translate quick actions * feat: translate search modal * feat: translate side menu * feat: native error boundary + translation * feat: translate error pages * feat: translate category forms * feat: translate link forms * refactor: LangSelector is no longer absolute by default
40 lines
881 B
TypeScript
40 lines
881 B
TypeScript
import { motion } from "framer-motion";
|
|
import useIsMobile from "hooks/useIsMobile";
|
|
import { CSSProperties, ReactNode } from "react";
|
|
import LangSelector from "./LangSelector";
|
|
|
|
export default function PageTransition({
|
|
className,
|
|
children,
|
|
style = {},
|
|
hideLangageSelector = false,
|
|
}: {
|
|
className?: string;
|
|
children: ReactNode;
|
|
style?: CSSProperties;
|
|
hideLangageSelector?: boolean;
|
|
}) {
|
|
const isMobile = useIsMobile();
|
|
|
|
return (
|
|
<motion.div
|
|
className={className}
|
|
initial={{ opacity: 0, scale: 0.95 }}
|
|
animate={{ opacity: 1, scale: 1 }}
|
|
transition={{
|
|
type: "spring",
|
|
stiffness: 260,
|
|
damping: 20,
|
|
}}
|
|
style={style}
|
|
>
|
|
{children}
|
|
{!hideLangageSelector && !isMobile && (
|
|
<div className="lang-selector">
|
|
<LangSelector />
|
|
</div>
|
|
)}
|
|
</motion.div>
|
|
);
|
|
}
|