Update pharmacokinetic parameters/calculations, add advanced settings, add disclaimer/citations, many improvements

This commit is contained in:
2026-01-09 19:50:15 +00:00
parent abd8e790b8
commit b396caa67a
14 changed files with 2222 additions and 192 deletions

View File

@@ -16,6 +16,7 @@ import DaySchedule from './components/day-schedule';
import SimulationChart from './components/simulation-chart';
import Settings from './components/settings';
import LanguageSelector from './components/language-selector';
import DisclaimerModal from './components/disclaimer-modal';
import { Button } from './components/ui/button';
// Custom Hooks
@@ -27,6 +28,25 @@ import { useLanguage } from './hooks/useLanguage';
const MedPlanAssistant = () => {
const { currentLanguage, t, changeLanguage } = useLanguage();
// Disclaimer modal state
const [showDisclaimer, setShowDisclaimer] = React.useState(false);
React.useEffect(() => {
const hasAccepted = localStorage.getItem('medPlanDisclaimerAccepted_v1');
if (!hasAccepted) {
setShowDisclaimer(true);
}
}, []);
const handleAcceptDisclaimer = () => {
localStorage.setItem('medPlanDisclaimerAccepted_v1', 'true');
setShowDisclaimer(false);
};
const handleOpenDisclaimer = () => {
setShowDisclaimer(true);
};
const {
appState,
updateNestedState,
@@ -66,6 +86,15 @@ const MedPlanAssistant = () => {
return (
<div className="min-h-screen bg-background p-4 sm:p-6 lg:p-8">
{/* Disclaimer Modal */}
<DisclaimerModal
isOpen={showDisclaimer}
onAccept={handleAcceptDisclaimer}
currentLanguage={currentLanguage}
onLanguageChange={changeLanguage}
t={t}
/>
<div className="max-w-7xl mx-auto">
<header className="mb-8">
<div className="flex justify-between items-start">
@@ -151,8 +180,20 @@ const MedPlanAssistant = () => {
</div>
<footer className="mt-8 p-4 bg-muted rounded-lg text-sm text-muted-foreground border">
<h3 className="font-semibold mb-2 text-foreground">{t('importantNote')}</h3>
<p>{t('disclaimer')}</p>
<div className="space-y-3">
<div>
<h3 className="font-semibold mb-2 text-foreground">{t('importantNote')}</h3>
<p>{t('disclaimer')}</p>
</div>
<Button
variant="outline"
size="sm"
onClick={handleOpenDisclaimer}
className="w-full sm:w-auto"
>
{t('disclaimerModalFooterLink')}
</Button>
</div>
</footer>
</div>
</div>