import Typography from "@material-ui/core/Typography"; import React, { FC, useState } from "react"; import { makeStyles } from "@material-ui/core/styles"; import { BlocBuilder, BlocProvider, useBloc, withBlocProvider } from "../state"; import Buttons from "./Buttonts"; import CounterCubit, { CounterCubitTimer, CounterCubitTimerLocal, } from "../bloc/CounterCubit"; import { Box, Button, Card, CardContent } from "@material-ui/core"; import TestLocalCubit from "../bloc/TestLocalCubit"; import Divider from "@material-ui/core/Divider"; import AuthBloc, { AuthEvent } from "../bloc/AuthBloc"; import Auth from "./Auth"; import DevTools from "../../devTools/DevTools"; import LazyToggle from "./LazyToggle"; const useStyles = makeStyles((theme) => ({ // necessary for content to be below app bar toolbar: theme.mixins.toolbar, })); const TestLocalBloc = () => { const [s, q] = useBloc(TestLocalCubit); return ; }; const TestLocalHookCreate = () => { const [count] = useBloc(CounterCubitTimerLocal, { create: () => new CounterCubitTimerLocal(300), }); return
Local: {count}
; }; interface CProps { text: string; } const NotConnected: FC = ({ text }) => { const [count] = useBloc(CounterCubitTimerLocal); return (
{text}: {count}
); }; const Connected = withBlocProvider(new CounterCubitTimerLocal(2000))( NotConnected ); const Killer = () => { const [l, sl] = useState(false); const [s, q] = useBloc(TestLocalCubit); return (
{l && (
{s}
bloc={() => new CounterCubit()}> Local Provider #1 blocClass={CounterCubit} builder={([value, { increment }]) => (
)} />
)} ;
); }; export default function Sandbox() { const [show, setShow] = useState(false); const classes = useStyles(); return ( <>
Bloc Async handler BlocBuilder blocClass={CounterCubit} builder={([value, { increment }]) => (
)} /> blocClass={AuthBloc} builder={([value, { add }]) => (
)} />
Breaking new TestLocalCubit()}> Local Bloc Hook Local Bloc HOC Local Providers bloc={() => new CounterCubitTimer()}> Local Counter Timer blocClass={CounterCubitTimer} builder={([value]) => (
)} /> bloc={() => new CounterCubitTimer(500)} > Local Counter Timer 2 blocClass={CounterCubitTimer} builder={([value]) => (
)} /> bloc={() => new CounterCubit()}> Local Provider #1 blocClass={CounterCubit} builder={([value, { increment }]) => (
)} /> bloc={() => new CounterCubit()}> Local Provider #2 blocClass={CounterCubit} builder={([value, { increment }]) => (
)} /> bloc={new CounterCubit()}> bloc={new TestLocalCubit()}> {show && }
); }