Skip to content

Commit

Permalink
fix: fix cpu issue
Browse files Browse the repository at this point in the history
  • Loading branch information
Chenqin Nee authored and Chenqin Nee committed Dec 13, 2022
1 parent ce33dd9 commit b6f0f51
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 57 deletions.
16 changes: 9 additions & 7 deletions apps/web/app/table/[id]/table.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import type { Table as CoreTable, QueryRecords } from '@egodb/core'
import { EGOTable } from '@egodb/table-ui'
import { Box, Space } from '@egodb/ui'
import { useUpdateAtom } from 'jotai/utils'
import { useState } from 'react'
import { useCallback, useState } from 'react'
import { CreateRecordFormDrawer } from '../../../components/create-record-form/create-record-form-drawer'
import { editRecordFormDrawerOpened } from '../../../components/edit-record-form/drawer-opened.atom'
import { EditRecordFormDrawer } from '../../../components/edit-record-form/edit-record-form-drawer'
Expand All @@ -18,12 +18,14 @@ interface IProps {

export default function Table({ table, records }: IProps) {
const setOpened = useUpdateAtom(editRecordFormDrawerOpened)
const [rowId, setRowId] = useState<string>()

const onRowClick = (id: string) => {
setRowId(id)
setOpened(true)
}
const onRowClick = useCallback(
(id: string) => {
console.log(id)
setOpened(true)
},
[setOpened],
)

return (
<Box>
Expand All @@ -34,7 +36,7 @@ export default function Table({ table, records }: IProps) {
<Space h="md" />
<EGOTable onRowClick={onRowClick} records={records} table={table} />
<CreateRecordFormDrawer table={table} />
<EditRecordFormDrawer table={table} rowId={rowId} />
<EditRecordFormDrawer table={table} />
</Box>
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,9 @@ import { EditRecordForm } from './edit-record-form'

interface IProps {
table: CoreTable
rowId?: string
}

export const EditRecordFormDrawer: React.FC<IProps> = ({ table, rowId }) => {
export const EditRecordFormDrawer: React.FC<IProps> = ({ table }) => {
const [opened, setOpened] = useAtom(editRecordFormDrawerOpened)
const theme = useEgoUITheme()

Expand Down Expand Up @@ -56,7 +55,7 @@ export const EditRecordFormDrawer: React.FC<IProps> = ({ table, rowId }) => {
overlayOpacity={0.55}
overlayBlur={3}
>
<EditRecordForm table={table} onCancel={reset} rowId={rowId} />
<EditRecordForm table={table} onCancel={reset} />
</Drawer>
</CreateRecordFormProvider>
)
Expand Down
50 changes: 4 additions & 46 deletions apps/web/components/edit-record-form/edit-record-form.tsx
Original file line number Diff line number Diff line change
@@ -1,68 +1,26 @@
import type { Table } from '@egodb/core'
import { Alert, Button, Divider, Group, IconAlertCircle, NumberInput, TextInput } from '@egodb/ui'
import { trpc } from '../../trpc'
import { FieldInputLabel } from '../fields/field-input-label'
import { useCreateRecordFormContext } from '../create-record-form/create-record-form-context'
import { Button, Divider, Group } from '@egodb/ui'

interface IProps {
table: Table
onCancel: () => void
onSuccess?: () => void
rowId?: string
}

export const EditRecordForm: React.FC<IProps> = ({ table, onCancel, onSuccess, rowId }) => {
const form = useCreateRecordFormContext()
const utils = trpc.useContext()

const createRecord = trpc.record.create.useMutation({
onSuccess: () => {
reset()
utils.record.list.refetch()
onSuccess?.()
},
})

const onSubmit = form.onSubmit((values) => {
createRecord.mutate(values)
})

const reset = () => {
onCancel()
createRecord.reset()
form.reset()
form.resetDirty()
form.resetTouched()
}

export const EditRecordForm: React.FC<IProps> = ({ table, onCancel, onSuccess }) => {
return (
<form onSubmit={onSubmit}>
{table.schema.fields.map((field, index) => {
const props = form.getInputProps(`value.${index}.value`)
const label = <FieldInputLabel>{field.name.value}</FieldInputLabel>
if (field.type === 'number') {
return <NumberInput {...props} label={label} />
}
return <TextInput {...props} label={label} />
})}

<form>
<Divider my="lg" />

<Group position="right">
<Button variant="subtle" onClick={() => onCancel()}>
Cancel
</Button>

<Button loading={createRecord.isLoading} miw={200} disabled={!form.isValid()} type="submit">
<Button miw={200} type="submit">
Confirm
</Button>
</Group>

{createRecord.isError && (
<Alert color="red" icon={<IconAlertCircle size={16} />} title="Oops! Create Record Error!" mt="lg">
{createRecord.error.message}
</Alert>
)}
</form>
)
}
1 change: 0 additions & 1 deletion packages/table-ui/src/table.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,6 @@ export const EGOTable: React.FC<IProps> = ({ table, records, onRowClick }) => {
<tr
key={row.id}
onClick={() => {
console.log('rowClick')
onRowClick(row.id)
}}
>
Expand Down

0 comments on commit b6f0f51

Please sign in to comment.