From 0d965ae80a09cdfd0f273a4b2438239b20d64d98 Mon Sep 17 00:00:00 2001
From: Omar Zubaidi <66521244+OmarZubaidi@users.noreply.github.com>
Date: Fri, 13 Oct 2023 10:45:05 +0100
Subject: [PATCH 1/3] Remove the word 'Intake'
---
packages/app/src/components/SelectSlot.tsx | 4 +-
packages/app/src/hooks/useClients.tsx | 6 +--
packages/app/src/index.tsx | 6 +--
.../store/{IntakeActions.tsx => Actions.tsx} | 44 +++++++++----------
.../store/{IntakeContext.tsx => Context.tsx} | 20 ++++-----
packages/app/src/store/index.ts | 4 +-
packages/app/src/store/types.ts | 4 +-
7 files changed, 44 insertions(+), 44 deletions(-)
rename packages/app/src/store/{IntakeActions.tsx => Actions.tsx} (78%)
rename packages/app/src/store/{IntakeContext.tsx => Context.tsx} (83%)
diff --git a/packages/app/src/components/SelectSlot.tsx b/packages/app/src/components/SelectSlot.tsx
index 1042a367..ff90041f 100644
--- a/packages/app/src/components/SelectSlot.tsx
+++ b/packages/app/src/components/SelectSlot.tsx
@@ -2,7 +2,7 @@ import { Button, Grid, Typography, styled, useTheme } from '@mui/material';
import { DateTime } from 'luxon';
import { useContext } from 'react';
import { useTranslation } from 'react-i18next';
-import { IntakeDataContext, updateAppointmentSlot } from '../store';
+import { DataContext, updateAppointmentSlot } from '../store';
const AppointmentSlotButton = styled(Button)({
borderRadius: '8px',
@@ -15,7 +15,7 @@ interface SelectSlotProps {
}
export function SelectSlot({ slots, timezone }: SelectSlotProps): JSX.Element {
- const { state, dispatch } = useContext(IntakeDataContext);
+ const { state, dispatch } = useContext(DataContext);
const theme = useTheme();
const { t } = useTranslation();
const selectedSlot = state.appointmentSlot;
diff --git a/packages/app/src/hooks/useClients.tsx b/packages/app/src/hooks/useClients.tsx
index 863add60..a54567bc 100644
--- a/packages/app/src/hooks/useClients.tsx
+++ b/packages/app/src/hooks/useClients.tsx
@@ -1,13 +1,13 @@
import { FhirClient, ZambdaClient } from '@zapehr/sdk';
import { useContext } from 'react';
-import { IntakeDataContext } from '../store';
+import { DataContext } from '../store';
export function useFhirClient(): FhirClient | null {
- const { state } = useContext(IntakeDataContext);
+ const { state } = useContext(DataContext);
return state.fhirClient || null;
}
export function useZambdaClient(): ZambdaClient | null {
- const { state } = useContext(IntakeDataContext);
+ const { state } = useContext(DataContext);
return state.zambdaClient || null;
}
diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx
index af23642c..c4f0bf74 100644
--- a/packages/app/src/index.tsx
+++ b/packages/app/src/index.tsx
@@ -4,7 +4,7 @@ import { createRoot } from 'react-dom/client';
import App from './App';
import './index.css';
import './lib/i18n';
-import { IntakeDataProvider } from './store';
+import { DataProvider } from './store';
const root = createRoot(document.getElementById('root') as HTMLElement);
root.render(
@@ -16,9 +16,9 @@ root.render(
domain="https://zapehr-dev.us.auth0.com"
redirectUri={window.location.origin}
>
-
+
-
+
);
diff --git a/packages/app/src/store/IntakeActions.tsx b/packages/app/src/store/Actions.tsx
similarity index 78%
rename from packages/app/src/store/IntakeActions.tsx
rename to packages/app/src/store/Actions.tsx
index fb921ebc..ca7aeec1 100644
--- a/packages/app/src/store/IntakeActions.tsx
+++ b/packages/app/src/store/Actions.tsx
@@ -1,9 +1,9 @@
import { FhirClient, ZambdaClient } from '@zapehr/sdk';
import { Location, Patient, Slot } from 'fhir/r4';
import { Dispatch } from 'react';
-import { IntakeAction, PatientInfo } from './types';
+import { Action, PatientInfo } from './types';
-export const setFhirClient = (token: string, dispatch: Dispatch): void => {
+export const setFhirClient = (token: string, dispatch: Dispatch): void => {
const fhirClient = new FhirClient({
accessToken: token,
apiUrl: import.meta.env.VITE_FHIR_API_URL,
@@ -14,7 +14,7 @@ export const setFhirClient = (token: string, dispatch: Dispatch):
});
};
-export const setZambdaClient = (token: string | undefined, dispatch: Dispatch): void => {
+export const setZambdaClient = (token: string | undefined, dispatch: Dispatch): void => {
const zambdaClient = new ZambdaClient({
accessToken: token,
apiUrl: import.meta.env.VITE_PROJECT_API_URL,
@@ -25,14 +25,14 @@ export const setZambdaClient = (token: string | undefined, dispatch: Dispatch): void => {
+export const updateAdditionalInformation = (additionalInfo: string, dispatch: Dispatch): void => {
dispatch({
additionalInformation: additionalInfo,
type: 'UPDATE_ADDITIONAL_INFORMATION',
});
};
-export const updateAppointmentId = (appointment: { id: string }, dispatch: Dispatch): void => {
+export const updateAppointmentId = (appointment: { id: string }, dispatch: Dispatch): void => {
dispatch({
appointmentId: appointment.id,
type: 'UPDATE_APPOINTMENT_ID',
@@ -40,119 +40,119 @@ export const updateAppointmentId = (appointment: { id: string }, dispatch: Dispa
};
// TODO Shouldn't this be a slot?
-export const updateAppointmentSlot = (appointmentSlot: string, dispatch: Dispatch): void => {
+export const updateAppointmentSlot = (appointmentSlot: string, dispatch: Dispatch): void => {
dispatch({
appointmentSlot: appointmentSlot,
type: 'UPDATE_APPOINTMENT_SLOT',
});
};
-export const updateCancellationReason = (cancellationReason: string, dispatch: Dispatch): void => {
+export const updateCancellationReason = (cancellationReason: string, dispatch: Dispatch): void => {
dispatch({
cancellationReason: cancellationReason,
type: 'UPDATE_CANCELLATION_REASON',
});
};
-export const updateConsentFormId = ({ id }: { id: string }, dispatch: Dispatch): void => {
+export const updateConsentFormId = ({ id }: { id: string }, dispatch: Dispatch): void => {
dispatch({
consentFormId: id,
type: 'UPDATE_CONSENT_FORM_ID',
});
};
-export const updateConsentFormSignerId = ({ id }: { id: string }, dispatch: Dispatch): void => {
+export const updateConsentFormSignerId = ({ id }: { id: string }, dispatch: Dispatch): void => {
dispatch({
consentFormSignerId: id,
type: 'UPDATE_CONSENT_FORM_SIGNER_ID',
});
};
-export const updateCoverageId = ({ id }: { id: string }, dispatch: Dispatch): void => {
+export const updateCoverageId = ({ id }: { id: string }, dispatch: Dispatch): void => {
dispatch({
coverageId: id,
type: 'UPDATE_COVERAGE_ID',
});
};
-export const updateLocationId = (location: { id: string }, dispatch: Dispatch): void => {
+export const updateLocationId = (location: { id: string }, dispatch: Dispatch): void => {
dispatch({
locationId: location.id,
type: 'UPDATE_LOCATION_ID',
});
};
-export const updateLocations = (locations: Location[], dispatch: Dispatch): void => {
+export const updateLocations = (locations: Location[], dispatch: Dispatch): void => {
dispatch({
locations: locations,
type: 'UPDATE_LOCATIONS',
});
};
-export const updatePatient = (patient: PatientInfo | undefined, dispatch: Dispatch): void => {
+export const updatePatient = (patient: PatientInfo | undefined, dispatch: Dispatch): void => {
dispatch({
patient: patient,
type: 'UPDATE_PATIENT',
});
};
-export const updatePatients = (patients: Patient[], dispatch: Dispatch): void => {
+export const updatePatients = (patients: Patient[], dispatch: Dispatch): void => {
dispatch({
patients: patients,
type: 'UPDATE_PATIENTS',
});
};
-export const updatePhoneNumber = (phoneNumber: string, dispatch: Dispatch): void => {
+export const updatePhoneNumber = (phoneNumber: string, dispatch: Dispatch): void => {
dispatch({
phoneNumber: phoneNumber,
type: 'UPDATE_PHONE_NUMBER',
});
};
-export const updateRelatedPersonId = ({ id }: { id: string }, dispatch: Dispatch): void => {
+export const updateRelatedPersonId = ({ id }: { id: string }, dispatch: Dispatch): void => {
dispatch({
relatedPersonId: id,
type: 'UPDATE_RELATED_PERSON_ID',
});
};
-export const updateResponsiblePartyId = ({ id }: { id: string }, dispatch: Dispatch): void => {
+export const updateResponsiblePartyId = ({ id }: { id: string }, dispatch: Dispatch): void => {
dispatch({
responsiblePartyId: id,
type: 'UPDATE_RESPONSIBLE_PARTY_ID',
});
};
-export const updateSelectedAppointmentSlotId = ({ id }: { id: string }, dispatch: Dispatch): void => {
+export const updateSelectedAppointmentSlotId = ({ id }: { id: string }, dispatch: Dispatch): void => {
dispatch({
selectedApptSlotId: id,
type: 'UPDATE_SELECTED_APPOINTMENT_SLOT_ID',
});
};
-export const updateSelectedLocation = (location: Location, dispatch: Dispatch): void => {
+export const updateSelectedLocation = (location: Location, dispatch: Dispatch): void => {
dispatch({
location: location,
type: 'UPDATE_SELECTED_LOCATION',
});
};
-export const updateSlots = (slots: Slot[], dispatch: Dispatch): void => {
+export const updateSlots = (slots: Slot[], dispatch: Dispatch): void => {
dispatch({
slots: slots,
type: 'UPDATE_SLOTS',
});
};
-export const updateSubmittedInsuranceType = ({ type }: { type: string }, dispatch: Dispatch): void => {
+export const updateSubmittedInsuranceType = ({ type }: { type: string }, dispatch: Dispatch): void => {
dispatch({
submittedInsuranceType: type,
type: 'UPDATE_SUBMITTED_INSURANCE_TYPE',
});
};
-export const updateTimezone = (timezone: string, dispatch: Dispatch): void => {
+export const updateTimezone = (timezone: string, dispatch: Dispatch): void => {
dispatch({
timezone: timezone,
type: 'UPDATE_TIMEZONE',
diff --git a/packages/app/src/store/IntakeContext.tsx b/packages/app/src/store/Context.tsx
similarity index 83%
rename from packages/app/src/store/IntakeContext.tsx
rename to packages/app/src/store/Context.tsx
index 039ed272..ac2c65dc 100644
--- a/packages/app/src/store/IntakeContext.tsx
+++ b/packages/app/src/store/Context.tsx
@@ -1,14 +1,14 @@
import { Dispatch, FC, ReactNode, SetStateAction, createContext, useContext, useReducer, useState } from 'react';
import { Outlet } from 'react-router-dom';
-import { IntakeAction, IntakeState } from './types';
+import { Action, State } from './types';
const initialState = {};
const PatientContext = createContext(undefined);
-type IntakeDataContextProps = {
- dispatch: Dispatch;
- state: IntakeState;
+type DataContextProps = {
+ dispatch: Dispatch;
+ state: State;
};
type PatientContextProps = {
@@ -42,9 +42,9 @@ export const PatientProvider: FC = () => {
);
};
-export const IntakeDataContext = createContext({ dispatch: () => null, state: initialState });
+export const DataContext = createContext({ dispatch: () => null, state: initialState });
-const intakeDataReducer = (state: IntakeState, action: IntakeAction): IntakeState => {
+const DataReducer = (state: State, action: Action): State => {
switch (action.type) {
case 'SET_FHIR_CLIENT':
return { ...state, fhirClient: action.fhirClient };
@@ -93,12 +93,12 @@ const intakeDataReducer = (state: IntakeState, action: IntakeAction): IntakeStat
}
};
-interface IntakeDataProviderProps {
+interface DataProviderProps {
children: ReactNode;
}
-export const IntakeDataProvider: FC = ({ children }) => {
- const [state, dispatch] = useReducer(intakeDataReducer, initialState);
+export const DataProvider: FC = ({ children }) => {
+ const [state, dispatch] = useReducer(DataReducer, initialState);
- return {children};
+ return {children};
};
diff --git a/packages/app/src/store/index.ts b/packages/app/src/store/index.ts
index f8d23506..8091982a 100644
--- a/packages/app/src/store/index.ts
+++ b/packages/app/src/store/index.ts
@@ -1,2 +1,2 @@
-export * from './IntakeActions';
-export * from './IntakeContext';
+export * from './Actions';
+export * from './Context';
diff --git a/packages/app/src/store/types.ts b/packages/app/src/store/types.ts
index e07355c2..27c258c2 100644
--- a/packages/app/src/store/types.ts
+++ b/packages/app/src/store/types.ts
@@ -71,7 +71,7 @@ export type PatientInfo = {
sex: PatientSex | undefined;
};
-export type IntakeAction =
+export type Action =
| { type: 'SET_FHIR_CLIENT'; fhirClient: FhirClient }
| { type: 'SET_ZAMBDA_CLIENT'; zambdaClient: ZambdaClient }
| { type: 'UPDATE_ADDITIONAL_INFORMATION'; additionalInformation: string }
@@ -94,7 +94,7 @@ export type IntakeAction =
| { type: 'UPDATE_SUBMITTED_INSURANCE_TYPE'; submittedInsuranceType: string }
| { type: 'UPDATE_TIMEZONE'; timezone: string };
-export type IntakeState = {
+export type State = {
additionalInformation?: string;
appointmentId?: string;
appointmentSlot?: string;
From 44a7de7d8312509facbe6f7eabaf2acdb3a52013 Mon Sep 17 00:00:00 2001
From: Omar Zubaidi <66521244+OmarZubaidi@users.noreply.github.com>
Date: Fri, 13 Oct 2023 11:15:28 +0100
Subject: [PATCH 2/3] Add hooks folder index.ts
---
packages/app/src/hooks/index.ts | 1 +
1 file changed, 1 insertion(+)
create mode 100644 packages/app/src/hooks/index.ts
diff --git a/packages/app/src/hooks/index.ts b/packages/app/src/hooks/index.ts
new file mode 100644
index 00000000..5480a71b
--- /dev/null
+++ b/packages/app/src/hooks/index.ts
@@ -0,0 +1 @@
+export * from './useClients';
From 5363050543cb10657a19284de4168a08fe2063eb Mon Sep 17 00:00:00 2001
From: Omar Zubaidi <66521244+OmarZubaidi@users.noreply.github.com>
Date: Fri, 13 Oct 2023 12:18:32 +0100
Subject: [PATCH 3/3] Add logo
---
packages/app/index.html | 4 ++--
packages/app/public/logo.png | Bin 0 -> 29271 bytes
packages/app/public/manifest.json | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
create mode 100644 packages/app/public/logo.png
diff --git a/packages/app/index.html b/packages/app/index.html
index d2dfeeb6..2ad7dc0a 100644
--- a/packages/app/index.html
+++ b/packages/app/index.html
@@ -2,7 +2,7 @@
-
+
-
+
ottEHR
diff --git a/packages/app/public/logo.png b/packages/app/public/logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..abb4cdc9ef6a263977765efe6ffbd8ac24a8db52
GIT binary patch
literal 29271
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
KMNUMnLSTYW5CX3N
literal 0
HcmV?d00001
diff --git a/packages/app/public/manifest.json b/packages/app/public/manifest.json
index 1c19a463..3e5c2273 100644
--- a/packages/app/public/manifest.json
+++ b/packages/app/public/manifest.json
@@ -3,7 +3,7 @@
"name": "ottEHR",
"icons": [
{
- "src": "favicon.png",
+ "src": "logo.png",
"sizes": "250x250",
"type": "image/png"
}
|