import { Badge, Box, Button, HStack, Td, Text, Tr, useColorModeValue, VStack, } from "@hope-ui/solid" import { useFetch, useRouter, useT } from "~/hooks" import { getMainColor } from "~/store" import { PEmptyResp, Storage } from "~/types" import { handleResp, handleRespWithNotifySuccess, notify, r } from "~/utils" import { DeletePopover } from "../common/DeletePopover" interface StorageProps { storage: Storage refresh: () => void } function StorageOp(props: StorageProps) { const t = useT() const { to } = useRouter() const [deleteLoading, deleteStorage] = useFetch( (): PEmptyResp => r.post(`/admin/storage/delete?id=${props.storage.id}`), ) const [enableOrDisableLoading, enableOrDisable] = useFetch( (): PEmptyResp => r.post( `/admin/storage/${props.storage.disabled ? "enable" : "disable"}?id=${ props.storage.id }`, ), ) return ( <> { const resp = await deleteStorage() handleResp(resp, () => { notify.success(t("global.delete_success")) props.refresh() }) }} /> ) } export function StorageGridItem(props: StorageProps) { const t = useT() return ( {props.storage.mount_path} {t(`drivers.drivers.${props.storage.driver}`)} {t("storages.common.status")}:  {props.storage.remark} ) } export function StorageListItem(props: StorageProps) { const t = useT() return ( {props.storage.mount_path} {t(`drivers.drivers.${props.storage.driver}`)} {props.storage.order} {props.storage.status} {props.storage.remark} ) }