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 && }
>
);
}