File "AuthFormWrapper.tsx"

Full Path: /var/www/html/gitep_front/src/shared/ui/wrappers/AuthFormWrapper.tsx
File size: 1.08 KB
MIME-type: text/html
Charset: utf-8

import { Outlet } from "react-router";
import styles from "./wrappers.module.scss";
import { Typography } from "antd";
import { Helmet } from "react-helmet";
import { useEffect, useState } from "react";

interface OutletContext {
  onStateChange: (value: boolean) => void;
}

export function AuthFormWrapper({ name, onStateChange }: { name: string; onStateChange: (value: boolean) => void }) {
  const [isModules, setIsModules] = useState<boolean>(true);

  useEffect(() => {
    onStateChange(isModules);
  }, [isModules]);

  const handleStateChangeFromOutlet = (value: boolean) => {
    setIsModules(value);
  };

  return (
    <>
      <Helmet>
        <title>Вход | Платежи</title>
      </Helmet>
      <div className={styles.form}>
        <Typography.Text className={styles.title}>
          {isModules ? name : "Не указана модель"}
        </Typography.Text>
        {/* Передаем в Outlet нашу функцию-обработчик */}
        <Outlet context={{ onStateChange: handleStateChangeFromOutlet } as OutletContext} />
      </div>
    </>
  );
}