Skip to content

Commit

Permalink
feat: update deps and format code + deploy test dockerfile
Browse files Browse the repository at this point in the history
  • Loading branch information
Xavier2p committed Sep 15, 2024
1 parent 8dfced7 commit 8690566
Show file tree
Hide file tree
Showing 13 changed files with 1,374 additions and 1,405 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ dist
dist-ssr
book
target
pkgs

# misc
.DS_Store
Expand Down
2 changes: 1 addition & 1 deletion Justfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@ run: build
docker:
npm --prefix ./server run build
npm --prefix ./client run ci
docker buildx build . --tag 'ghcr.io/xavier2p/helix:latest'
docker buildx build . -f main.dockerfile --tag 'ghcr.io/xavier2p/helix:latest'
1,056 changes: 524 additions & 532 deletions client/package-lock.json

Large diffs are not rendered by default.

14 changes: 7 additions & 7 deletions client/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@
"dependencies": {
"@emotion/react": "^11.10.6",
"@fvilers/disable-react-devtools": "^1.3.0",
"@mantine/core": "^6.0.5",
"@mantine/dates": "^6.0.5",
"@mantine/form": "^6.0.5",
"@mantine/hooks": "^6.0.5",
"@mantine/notifications": "^6.0.5",
"@mantine/spotlight": "^6.0.6",
"@mantine/core": "^7.10.2",
"@mantine/dates": "^7.10.2",
"@mantine/form": "^7.10.2",
"@mantine/hooks": "^7.10.2",
"@mantine/notifications": "^7.10.2",
"@mantine/spotlight": "^7.10.2",
"@react-pdf/renderer": "^3.1.9",
"@tabler/icons-react": "^2.12.0",
"axios": "^1.6.0",
Expand Down Expand Up @@ -48,4 +48,4 @@
"typescript": "^5.0.2",
"vite": "^4.5.3"
}
}
}
185 changes: 85 additions & 100 deletions client/src/pages/appointment/patient-metadata.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,112 +7,97 @@ import { UseFormReturnType } from '@mantine/form';
import GrantAccess from '../../components/auth/grant-access';

const Biodatas = ({ data, view }: { data: UseFormReturnType<IAppointmentData>; view: boolean }): JSX.Element => (
<Grid columns={12}>
<Grid.Col sm={6} md={4}>
<TextInput label="Name" {...data.getInputProps('name')} {...params(view)} />
</Grid.Col>
<Grid.Col sm={6} md={4}>
<TextInput label="Last Name" {...data.getInputProps('lastName')} {...params(view)} />
</Grid.Col>
<Grid.Col xs={4} sm={2} md={4}>
<TextInput label="Sex" readOnly {...data.getInputProps('sex')} />
</Grid.Col>
<Grid.Col xs={8} sm={4} md={4}>
<TextInput label="Birth Date" {...data.getInputProps('birthDate')} {...params(view)} />
</Grid.Col>
<Grid.Col sm={6} md={4}>
<TextInput label="Email" {...data.getInputProps('email')} {...params(view)} />
</Grid.Col>
<Grid.Col sm={6} md={4}>
<TextInput label="Phone" {...data.getInputProps('phone')} {...params(view)} />
</Grid.Col>
<Grid.Col sm={6} md={4}>
<TextInput label="Address" {...data.getInputProps('address')} {...params(view)} />
</Grid.Col>
<Grid.Col sm={6} md={4}>
<TextInput label="Job" {...data.getInputProps('job')} {...params(view)} />
</Grid.Col>
<Grid.Col sm={6} md={4}>
<TextInput label="City" {...data.getInputProps('city')} {...params(view)} />
</Grid.Col>
</Grid>
<Grid columns={12}>
<Grid.Col sm={6} md={4}>
<TextInput label="Name" {...data.getInputProps('name')} {...params(view)} />
</Grid.Col>
<Grid.Col sm={6} md={4}>
<TextInput label="Last Name" {...data.getInputProps('lastName')} {...params(view)} />
</Grid.Col>
<Grid.Col xs={4} sm={2} md={4}>
<TextInput label="Sex" readOnly {...data.getInputProps('sex')} />
</Grid.Col>
<Grid.Col xs={8} sm={4} md={4}>
<TextInput label="Birth Date" {...data.getInputProps('birthDate')} {...params(view)} />
</Grid.Col>
<Grid.Col sm={6} md={4}>
<TextInput label="Email" {...data.getInputProps('email')} {...params(view)} />
</Grid.Col>
<Grid.Col sm={6} md={4}>
<TextInput label="Phone" {...data.getInputProps('phone')} {...params(view)} />
</Grid.Col>
<Grid.Col sm={6} md={4}>
<TextInput label="Address" {...data.getInputProps('address')} {...params(view)} />
</Grid.Col>
<Grid.Col sm={6} md={4}>
<TextInput label="Job" {...data.getInputProps('job')} {...params(view)} />
</Grid.Col>
<Grid.Col sm={6} md={4}>
<TextInput label="City" {...data.getInputProps('city')} {...params(view)} />
</Grid.Col>
</Grid>
);

interface IProps {
form: UseFormReturnType<IAppointmentData>;
color: string;
view: boolean;
form: UseFormReturnType<IAppointmentData>;
color: string;
view: boolean;
}

const PatientMetadata = ({ form, color, view }: IProps): JSX.Element => {
const { handleSubmit } = useAppointmentPatient(form);
return (
<Paper shadow="sm" radius="md" p="lg" withBorder my="lg">
<Title order={2}>Patient Data</Title>
<form onSubmit={handleSubmit}>
<Tabs defaultValue="data" radius="md" color={color}>
<Tabs.List>
<Tabs.Tab value="data" icon={<IconDna size="1rem" />}>
BioData
</Tabs.Tab>
<Tabs.Tab value="medical" icon={<IconAlertTriangle size="1rem" />}>
Antécédents
</Tabs.Tab>
<Tabs.Tab
value="appointments"
icon={<IconCalendarCheck size="1rem" />}
disabled
rightSection={
<Badge
w={16}
h={16}
sx={{ pointerEvents: 'none' }}
variant="filled"
size="xs"
p={0}
color={color}
>
{form.values.lastAppointments.length - 1}
</Badge>
}
>
Previous Appointments
</Tabs.Tab>
</Tabs.List>
<Tabs.Panel value="data">
<Biodatas data={form} view={view} />
</Tabs.Panel>
<Tabs.Panel value="medical">
<GrantAccess levels={['ADMIN', 'PRACTITIONER']}>
<Title order={3}>Antécédents Médicaux</Title>
<Textarea
maxRows={10}
placeholder="Antécédents médicaux"
{...form.getInputProps('medicalIssues')}
/>
<TextInput
label="Médecin traitant"
placeholder="Médecin traitant"
{...form.getInputProps('doctor')}
/>
</GrantAccess>
</Tabs.Panel>
<Tabs.Panel value="appointments">
{/* <PreviousAppointments data={form} color={color} /> */}
</Tabs.Panel>
</Tabs>
{view ? null : (
<GrantAccess levels={['ADMIN', 'PRACTITIONER']}>
<Center>
<Button variant="light" mt="lg" color="fr-orange.4" type="submit">
Update Patient Data
</Button>
</Center>
</GrantAccess>
)}
</form>
</Paper>
);
const { handleSubmit } = useAppointmentPatient(form);
return (
<Paper shadow="sm" radius="md" p="lg" withBorder my="lg">
<Title order={2}>Patient Data</Title>
<form onSubmit={handleSubmit}>
<Tabs defaultValue="data" radius="md" color={color}>
<Tabs.List>
<Tabs.Tab value="data" icon={<IconDna size="1rem" />}>
BioData
</Tabs.Tab>
<Tabs.Tab value="medical" icon={<IconAlertTriangle size="1rem" />}>
Antécédents
</Tabs.Tab>
<Tabs.Tab
value="appointments"
icon={<IconCalendarCheck size="1rem" />}
disabled
rightSection={
<Badge w={16} h={16} sx={{ pointerEvents: 'none' }} variant="filled" size="xs" p={0} color={color}>
{form.values.lastAppointments.length - 1}
</Badge>
}
>
Previous Appointments
</Tabs.Tab>
</Tabs.List>
<Tabs.Panel value="data">
<Biodatas data={form} view={view} />
</Tabs.Panel>
<Tabs.Panel value="medical">
<GrantAccess levels={['ADMIN', 'PRACTITIONER']}>
<Title order={3}>Antécédents Médicaux</Title>
<Textarea maxRows={10} placeholder="Antécédents médicaux" {...form.getInputProps('medicalIssues')} />
<TextInput label="Médecin traitant" placeholder="Médecin traitant" {...form.getInputProps('doctor')} />
</GrantAccess>
</Tabs.Panel>
<Tabs.Panel value="appointments">
{/* <PreviousAppointments data={form} color={color} /> */}
Need dev
</Tabs.Panel>
</Tabs>
{view ? null : (
<GrantAccess levels={['ADMIN', 'PRACTITIONER']}>
<Center>
<Button variant="light" mt="lg" color="fr-orange.4" type="submit">
Update Patient Data
</Button>
</Center>
</GrantAccess>
)}
</form>
</Paper>
);
};

export { PatientMetadata };
97 changes: 51 additions & 46 deletions client/src/pages/appointment/secretary.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,63 +5,68 @@ import cnf from '../../config/config';
import { DateTimePicker } from '@mantine/dates';

interface IProps {
view: boolean;
view: boolean;
}

const Secretary = ({ view }: IProps): JSX.Element => {
const form = useAppFormContext();
const form = useAppFormContext();

return (
<Paper shadow="sm" radius="md" p="lg" withBorder my="lg">
<Title order={2}>Secretary Part</Title>
<Grid columns={12}>
<Grid.Col span={4}>
{/* {view ? (
return (
<Paper shadow="sm" radius="md" p="lg" withBorder my="lg">
<Title order={2}>Secretary Part</Title>
<Grid columns={12}>
<Grid.Col span={4}>
{/* {view ? (
<TextInput
icon={<IconCurrencyEuro size="1rem" />}
label="Amount"
defaultValue={secretary.amount}
readOnly
/>
) : ( */}
<NumberInput
icon={<IconCurrencyEuro size="1rem" />}
label="Amount"
placeholder="Amount"
{...form.getInputProps('payment.amount')}
readOnly={view}
/>
{/* )} */}
</Grid.Col>
<Grid.Col span={4}>
{view ? (
<TextInput label="Method" defaultValue={form.values.payment.method} readOnly />
) : (
<Select
label="Method"
placeholder="Choose..."
defaultValue={cnf.defaultPaymentMethod}
data={['cash', 'card', 'check']}
{...form.getInputProps('payment.method')}
/>
)}
</Grid.Col>
<Grid.Col span={4}>
<Button fullWidth variant="light" color="fr-orange.4" mt="xl">
Facture
</Button>
</Grid.Col>
<Grid.Col span={6}>
<DateTimePicker label="Next Appointment" placeholder="Date" />
</Grid.Col>
<Grid.Col span={6}>
<Button fullWidth variant="light" color="fr-orange.4" mt="xl">
Add Appointment
</Button>
</Grid.Col>
</Grid>
</Paper>
);
<NumberInput
icon={<IconCurrencyEuro size="1rem" />}
label="Amount"
placeholder="Amount"
{...form.getInputProps('payment.amount')}
readOnly={view}
/>
{/* )} */}
</Grid.Col>
<Grid.Col span={4}>
{view ? (
<TextInput label="Method" defaultValue={form.values.payment.method} readOnly />
) : (
<Select
label="Method"
placeholder="Choose..."
defaultValue={cnf.defaultPaymentMethod}
data={['cash', 'card', 'check']}
{...form.getInputProps('payment.method')}
/>
)}
</Grid.Col>
<Grid.Col span={4}>
<Button fullWidth variant="light" color="fr-orange.4" mt="xl">
Facture
</Button>
</Grid.Col>
<Grid.Col span={6}>
<DateTimePicker
label="Next Appointment"
placeholder="Date"
onPointerEnterCapture={undefined}
onPointerLeaveCapture={undefined}
/>
</Grid.Col>
<Grid.Col span={6}>
<Button fullWidth variant="light" color="fr-orange.4" mt="xl">
Add Appointment
</Button>
</Grid.Col>
</Grid>
</Paper>
);
};

export { Secretary };
Loading

0 comments on commit 8690566

Please sign in to comment.