diff --git a/client/.env.example b/client/.env.example new file mode 100644 index 0000000..86452bf --- /dev/null +++ b/client/.env.example @@ -0,0 +1,2 @@ +VITE_MUNICIPALITY=Tabuk +VITE_IS_ONLINE=false diff --git a/client/src/components/TransactionForm.tsx b/client/src/components/TransactionForm.tsx index 2451bdf..764960f 100644 --- a/client/src/components/TransactionForm.tsx +++ b/client/src/components/TransactionForm.tsx @@ -1,6 +1,7 @@ import React, { useState } from 'react'; -import { checkDispensingEligibility, type LocalSettings, type GuardResult } from '../utils/dispensingGuard'; +import { checkDispensingEligibility, type GuardResult } from '../utils/dispensingGuard'; import { type PatientDocType } from '../db/schema'; +import { LOCAL_SETTINGS } from '../config'; // Mock Patient Data (Since we don't have a patient picker UI yet) const MOCK_PATIENTS: (PatientDocType & { last_sync_date: string })[] = [ @@ -9,11 +10,6 @@ const MOCK_PATIENTS: (PatientDocType & { last_sync_date: string })[] = [ { id: 'P3', name: 'Jose Rizal', municipality: 'Tabuk', last_sync_date: '2023-01-01T00:00:00Z' } // Stale ]; -const LOCAL_SETTINGS: LocalSettings = { - municipality: 'Tabuk', - isOnline: false // Simulating Offline Mode -}; - interface TransactionFormProps { onAdd: (type: 'DISPENSE' | 'RECEIVE' | 'ADJUST', qty: number, batchId: string) => void; sku: string; @@ -57,7 +53,7 @@ export const TransactionForm: React.FC = ({ onAdd, sku }) ))}
- Context: Offline Mode. Home: Tabuk. + Context: {LOCAL_SETTINGS.isOnline ? 'Online' : 'Offline Mode'}. Home: {LOCAL_SETTINGS.municipality}.
diff --git a/client/src/config.ts b/client/src/config.ts new file mode 100644 index 0000000..4bdce4b --- /dev/null +++ b/client/src/config.ts @@ -0,0 +1,6 @@ +import { type LocalSettings } from './utils/dispensingGuard'; + +export const LOCAL_SETTINGS: LocalSettings = { + municipality: import.meta.env.VITE_MUNICIPALITY || 'Tabuk', + isOnline: import.meta.env.VITE_IS_ONLINE === 'true' // Default to false if not set +}; diff --git a/client/src/db/schema.ts b/client/src/db/schema.ts index bc4bb84..528d454 100644 --- a/client/src/db/schema.ts +++ b/client/src/db/schema.ts @@ -48,7 +48,7 @@ export const TRANSACTION_SCHEMA_LITERAL = { required: ['id', 'type', 'sku', 'qty', 'timestamp', 'sync_status'] } as const; -const schemaTypedTransaction = toTypedRxJsonSchema(TRANSACTION_SCHEMA_LITERAL); +export const schemaTypedTransaction = toTypedRxJsonSchema(TRANSACTION_SCHEMA_LITERAL); export type TransactionDocType = ExtractDocumentTypeFromTypedRxJsonSchema; export const TransactionSchema: RxJsonSchema = TRANSACTION_SCHEMA_LITERAL; @@ -79,7 +79,7 @@ export const INVENTORY_SCHEMA_LITERAL = { required: ['sku', 'batch_id', 'current_stock'] } as const; -const schemaTypedInventory = toTypedRxJsonSchema(INVENTORY_SCHEMA_LITERAL); +export const schemaTypedInventory = toTypedRxJsonSchema(INVENTORY_SCHEMA_LITERAL); export type InventoryDocType = ExtractDocumentTypeFromTypedRxJsonSchema; export const InventorySchema: RxJsonSchema = INVENTORY_SCHEMA_LITERAL; @@ -110,7 +110,7 @@ export const PATIENT_SCHEMA_LITERAL = { required: ['id', 'name', 'municipality'] } as const; -const schemaTypedPatient = toTypedRxJsonSchema(PATIENT_SCHEMA_LITERAL); +export const schemaTypedPatient = toTypedRxJsonSchema(PATIENT_SCHEMA_LITERAL); export type PatientDocType = ExtractDocumentTypeFromTypedRxJsonSchema; export const PatientSchema: RxJsonSchema = PATIENT_SCHEMA_LITERAL;