@@ -20,12 +20,12 @@ const Settings = ({
onUpdateUiSetting('showDayTimeXAxis', e.target.checked)}
+ id="showDayTimeOnXAxis"
+ checked={showDayTimeOnXAxis}
+ onChange={e => onUpdateUiSetting('showDayTimeOnXAxis', e.target.checked)}
className="h-4 w-4 rounded border-gray-300 text-sky-600 focus:ring-sky-500"
/>
-
diff --git a/src/components/SimulationChart.js b/src/components/SimulationChart.js
index ad1ab44..6f1637b 100644
--- a/src/components/SimulationChart.js
+++ b/src/components/SimulationChart.js
@@ -6,7 +6,7 @@ const SimulationChart = ({
deviatedProfile,
correctedProfile,
chartView,
- showDayTimeXAxis,
+ showDayTimeOnXAxis,
therapeuticRange,
simulationDays,
displayedDays,
@@ -16,7 +16,17 @@ const SimulationChart = ({
}) => {
const totalHours = (parseInt(simulationDays, 10) || 3) * 24;
const chartTicks = Array.from({length: Math.floor(totalHours / 6) + 1}, (_, i) => i * 6);
- const chartWidthPercentage = Math.max(100, (totalHours / ( (parseInt(displayedDays, 10) || 2) * 24)) * 100);
+
+ // Generate ticks for 24h repeating axis (every 6 hours across all days)
+ const dayTimeTicks = React.useMemo(() => {
+ const ticks = [];
+ for (let i = 0; i <= totalHours; i += 6) {
+ ticks.push(i);
+ }
+ return ticks;
+ }, [totalHours]);
+
+ const chartWidthPercentage = Math.max(100, (totalHours / ( (parseInt(displayedDays, 10) || 2) * 25)) * 100);
const chartDomain = React.useMemo(() => {
const numMin = parseFloat(yAxisMin);
@@ -36,21 +46,10 @@ const SimulationChart = ({
dataKey="timeHours"
type="number"
domain={[0, totalHours]}
- ticks={chartTicks}
- tickFormatter={(h) => `${h}${t.hour}`}
- xAxisId="continuous"
+ ticks={showDayTimeOnXAxis ? dayTimeTicks : chartTicks}
+ tickFormatter={(h) => `${showDayTimeOnXAxis ? h % 24 : h}${t.hour}`}
+ xAxisId="hours"
/>
- {showDayTimeXAxis && (
-
`${h % 24}${t.hour}`}
- xAxisId="daytime"
- orientation="top"
- />
- )}
)}
{(chartView === 'damph' || chartView === 'both') && (
@@ -77,7 +76,7 @@ const SimulationChart = ({
label={{ value: t.max, position: 'insideTopLeft' }}
stroke="red"
strokeDasharray="3 3"
- xAxisId="continuous"
+ xAxisId="hours"
/>
)}
@@ -88,7 +87,7 @@ const SimulationChart = ({
x={day * 24}
stroke="#999"
strokeDasharray="5 5"
- xAxisId="continuous"
+ xAxisId="hours"
/>
)
))}
@@ -102,7 +101,7 @@ const SimulationChart = ({
stroke="#3b82f6"
strokeWidth={2.5}
dot={false}
- xAxisId="continuous"
+ xAxisId="hours"
/>
)}
{(chartView === 'ldx' || chartView === 'both') && (
@@ -115,7 +114,7 @@ const SimulationChart = ({
strokeWidth={2}
dot={false}
strokeDasharray="3 3"
- xAxisId="continuous"
+ xAxisId="hours"
/>
)}
@@ -129,7 +128,7 @@ const SimulationChart = ({
strokeWidth={2}
strokeDasharray="5 5"
dot={false}
- xAxisId="continuous"
+ xAxisId="hours"
/>
)}
{deviatedProfile && (chartView === 'ldx' || chartView === 'both') && (
@@ -142,7 +141,7 @@ const SimulationChart = ({
strokeWidth={1.5}
strokeDasharray="5 5"
dot={false}
- xAxisId="continuous"
+ xAxisId="hours"
/>
)}
@@ -156,7 +155,7 @@ const SimulationChart = ({
strokeWidth={2.5}
strokeDasharray="3 7"
dot={false}
- xAxisId="continuous"
+ xAxisId="hours"
/>
)}
{correctedProfile && (chartView === 'ldx' || chartView === 'both') && (
@@ -169,7 +168,7 @@ const SimulationChart = ({
strokeWidth={2}
strokeDasharray="3 7"
dot={false}
- xAxisId="continuous"
+ xAxisId="hours"
/>
)}
diff --git a/src/constants/defaults.js b/src/constants/defaults.js
index 6a36dbb..58bc430 100644
--- a/src/constants/defaults.js
+++ b/src/constants/defaults.js
@@ -19,7 +19,7 @@ export const getDefaultState = () => ({
therapeuticRange: { min: '10.5', max: '11.5' },
doseIncrement: '2.5',
uiSettings: {
- showDayTimeXAxis: true,
+ showDayTimeOnXAxis: true,
chartView: 'damph',
yAxisMin: '',
yAxisMax: '',