diff --git a/frontend/components/containers/interactive-session.tsx b/frontend/components/containers/interactive-session.tsx index 02d951d..811d457 100644 --- a/frontend/components/containers/interactive-session.tsx +++ b/frontend/components/containers/interactive-session.tsx @@ -52,10 +52,9 @@ const InteractiveSession = ({ type, params }: InteractiveSessionProps) => { ) : ( ); - - default: - throw new Error("Unknown interactive session type"); } + + return null; }; export default InteractiveSession; diff --git a/frontend/components/ui/button.tsx b/frontend/components/ui/button.tsx index ea9a991..a65f521 100644 --- a/frontend/components/ui/button.tsx +++ b/frontend/components/ui/button.tsx @@ -1,5 +1,6 @@ import React from "react"; import { GetProps, Button as BaseButton, Spinner } from "tamagui"; +import Icons from "./icons"; type ButtonProps = GetProps & { isDisabled?: boolean; @@ -16,4 +17,14 @@ const Button = ({ icon, isLoading, isDisabled, ...props }: ButtonProps) => { ); }; +export const BackButton = (props: GetProps) => ( + ); + +type HostsActionsProps = { + selected: string[]; + parentId?: string | null; + onClear: () => void; +}; + +const actionMode = { + CUT: 1, +}; + +const HostsActions = ({ + selected, + parentId = null, + onClear, +}: HostsActionsProps) => { + const [curMode, setCurMode] = useState(0); + const move = useMoveHost(); + + const onReset = () => { + setCurMode(0); + onClear(); + }; + + const onMoveAction = () => { + move.mutate({ parentId, hostId: selected }, { onSuccess: onReset }); + }; + + return ( + <> + {curMode === actionMode.CUT ? ( +