Sha256: 552c67f9a18315bd2f15484a9578c47a01415f9fc8c2543f1d50115b9df97e91

Contents?: true

Size: 930 Bytes

Versions: 92

Compression:

Stored size: 930 Bytes

Contents

import React, { useEffect } from "react";
import { Navigation } from "../components/Navigation";
import { AlertProvider, useAlerts } from '../components/AlertProvider';
import { usePage } from '@inertiajs/react';

interface PageProps {
  flash: Array<{
    type: 'success' | 'error' | 'info';
    message: string;
  }>;
}

function FlashMessageHandler({ children }: { children: React.ReactNode }) {
  const { showAlert } = useAlerts();
  const { flash } = usePage<PageProps>().props;

  useEffect(() => {
    if (flash) {
      flash.forEach(({ type, message }) => {
        showAlert(type, message);
      });
    }
  }, [flash, showAlert]);

  return <>{children}</>;
}

export default function Layout({ children }: { children: React.ReactNode }) {
  return (
    <AlertProvider>
      <FlashMessageHandler>
        <Navigation>
          {children}
        </Navigation>
      </FlashMessageHandler>
    </AlertProvider>
  );
}

Version data entries

92 entries across 92 versions & 1 rubygems

Version Path
easy_ml-0.2.0.pre.rc105 app/frontend/layouts/Layout.tsx
easy_ml-0.2.0.pre.rc104 app/frontend/layouts/Layout.tsx
easy_ml-0.2.0.pre.rc103 app/frontend/layouts/Layout.tsx
easy_ml-0.2.0.pre.rc102 app/frontend/layouts/Layout.tsx
easy_ml-0.2.0.pre.rc101 app/frontend/layouts/Layout.tsx
easy_ml-0.2.0.pre.rc100 app/frontend/layouts/Layout.tsx
easy_ml-0.2.0.pre.rc99 app/frontend/layouts/Layout.tsx
easy_ml-0.2.0.pre.rc98 app/frontend/layouts/Layout.tsx
easy_ml-0.2.0.pre.rc97 app/frontend/layouts/Layout.tsx
easy_ml-0.2.0.pre.rc96 app/frontend/layouts/Layout.tsx
easy_ml-0.2.0.pre.rc95 app/frontend/layouts/Layout.tsx
easy_ml-0.2.0.pre.rc94 app/frontend/layouts/Layout.tsx
easy_ml-0.2.0.pre.rc93 app/frontend/layouts/Layout.tsx
easy_ml-0.2.0.pre.rc92 app/frontend/layouts/Layout.tsx
easy_ml-0.2.0.pre.rc91 app/frontend/layouts/Layout.tsx
easy_ml-0.2.0.pre.rc90 app/frontend/layouts/Layout.tsx
easy_ml-0.2.0.pre.rc89 app/frontend/layouts/Layout.tsx
easy_ml-0.2.0.pre.rc88 app/frontend/layouts/Layout.tsx
easy_ml-0.2.0.pre.rc85 app/frontend/layouts/Layout.tsx
easy_ml-0.2.0.pre.rc84 app/frontend/layouts/Layout.tsx