import React, { useEffect, useState } from "react" import { useTheme } from "@material-ui/core/styles" import { CommonTableDefaultProps as DefaultProps } from "@/components/CommonTable/models/defaultProps" import CommonTable, { CommonTableHead } from "@/components/CommonTable" import tableIcons from "@/components/CommonTable/models/tableIcons" import rxSubscribe from "@/utils/database/rxSubscribe" import { Columns } from "./columns" import { Primary, Schema } from "./schema" import { Collection } from "./collections" import { Collection as Setting } from "../setting/collections" import ConfirmDialog from "@/components/CommonDialog/ConfirmDialog" import rxDb from "@/utils/database/rxConnect" import dynamic from "next/dynamic" import jsonViewStyles from "@/utils/styles/jsonViewStyles" import { Type } from "./types" import { Box, Button } from "@material-ui/core" import { useTranslation } from "react-i18next" const DynamicReactJson = dynamic(import("react-json-view"), { ssr: false }) export default function AuthInfoContainer() { const { t } = useTranslation("table") const theme = useTheme() const [data, setData] = useState([]) const [selData, setSelData] = useState() const [modalState, setModalState] = useState({ open: 0, title: "", msg: "" }) useEffect(() => { ;(async () => { await rxSubscribe({ collection: Collection.name, sort: { updated_at: "desc" }, callback: data => setData(data) }) })() }, []) return ( <> <> { data = data as Type[] const msg = "Do you want to delete " + data.length + " rows ?" setModalState({ title: "Bulk delete", open: modalState.open + 1, msg }) setSelData(data) } } ]} // detailPanel detailPanel={[ { icon: "assignment_ind", render: rowData => { if (!rowData.details) { return (
{rowData.details || "DETAILS IS EMPTY"}
) } else { const str = rowData.details || "" return ( ) } // check columns } // render }, // item { icon: "sync_alt", render: rowData => { return ( ) } } ]} /> {/* ConfirmDialog */} { // bulk delete if (selData && selData.length > 0) { selData.map(async item => { try { const db = await rxDb() const query = db[Collection.name] .findOne() .where(Primary) .eq(item[Primary]) await query.remove() } catch (e) { console.error(e) } }) } }} /> ) }