|
2 | 2 |
|
3 | 3 | import { CarePlanData, CarePlanDataActivity } from "@/lib/models/types";
|
4 | 4 | import { useEffect, useState } from "react";
|
| 5 | +import { Button } from "../ui/button"; |
5 | 6 |
|
6 | 7 | type Props = {
|
7 | 8 | action: (data: FormData) => Promise<any>;
|
| 9 | + toVersion: (version: number) => void; |
8 | 10 | data: CarePlanData;
|
| 11 | + latestVersion: number; |
| 12 | + setCurrentVersion: (version: number) => void; |
9 | 13 | };
|
10 | 14 |
|
11 |
| -export const CarePlanContainer = ({ data, action }: Props) => { |
| 15 | +export const CarePlanContainer = ({ |
| 16 | + data, |
| 17 | + action, |
| 18 | + toVersion, |
| 19 | + latestVersion, |
| 20 | + setCurrentVersion, |
| 21 | +}: Props) => { |
12 | 22 | const [careplan, setCarePlan] = useState<CarePlanData>(data);
|
13 | 23 | const [items, setItems] = useState<CarePlanDataActivity[]>();
|
14 | 24 | const [selectFix, setSelectFix] = useState<boolean>(false);
|
@@ -95,7 +105,17 @@ export const CarePlanContainer = ({ data, action }: Props) => {
|
95 | 105 | </div>
|
96 | 106 | )}
|
97 | 107 | <div className="flex flex-col gap-4">
|
98 |
| - <div>{careplan && <CarePlanSummary careplan={careplan} />}</div> |
| 108 | + <div> |
| 109 | + {careplan && ( |
| 110 | + <CarePlanSummary |
| 111 | + careplan={careplan} |
| 112 | + lastestVersion={latestVersion} |
| 113 | + setCurrentVersion={setCurrentVersion} |
| 114 | + previous={() => toVersion(careplan.version - 1)} |
| 115 | + next={() => toVersion(careplan.version + 1)} |
| 116 | + /> |
| 117 | + )} |
| 118 | + </div> |
99 | 119 | <h5 className="scroll-m-20 text-4xl font-bold tracking-tight">Tasks</h5>
|
100 | 120 | {careplan.activities?.map((activity: CarePlanDataActivity) => {
|
101 | 121 | return (
|
@@ -170,12 +190,47 @@ export const CarePlanContainer = ({ data, action }: Props) => {
|
170 | 190 | );
|
171 | 191 | };
|
172 | 192 |
|
173 |
| -const CarePlanSummary = ({ careplan }: { careplan: CarePlanData }) => { |
| 193 | +const CarePlanSummary = ({ |
| 194 | + careplan, |
| 195 | + lastestVersion, |
| 196 | + previous, |
| 197 | + next, |
| 198 | + setCurrentVersion, |
| 199 | +}: { |
| 200 | + careplan: CarePlanData; |
| 201 | + lastestVersion: number; |
| 202 | + previous: () => void; |
| 203 | + next: () => void; |
| 204 | + setCurrentVersion: (version: number) => void; |
| 205 | +}) => { |
174 | 206 | return (
|
175 | 207 | <div>
|
176 | 208 | <details className="collapse bg-base-200">
|
177 | 209 | <summary className="collapse-title text-xl font-medium">
|
178 |
| - View Care Plan Details |
| 210 | + <div className="flex flex-row justify-between w-full items-center"> |
| 211 | + <span>View Care Plan Details</span> |
| 212 | + <div className="flex flex-row gap-2 items-center"> |
| 213 | + {careplan.version != lastestVersion && ( |
| 214 | + <Button onClick={() => setCurrentVersion(careplan.version)}> |
| 215 | + Set as Current version |
| 216 | + </Button> |
| 217 | + )} |
| 218 | + {careplan.version > 1 && ( |
| 219 | + <Button variant="link" onClick={previous}> |
| 220 | + {" "} |
| 221 | + {"< "} Previous |
| 222 | + </Button> |
| 223 | + )} |
| 224 | + <span className="badge badge-primary"> |
| 225 | + Version: {careplan.version} |
| 226 | + </span> |
| 227 | + {careplan.version < lastestVersion && ( |
| 228 | + <Button variant="link" onClick={next}> |
| 229 | + Next {" >"} |
| 230 | + </Button> |
| 231 | + )} |
| 232 | + </div> |
| 233 | + </div> |
179 | 234 | </summary>
|
180 | 235 | <div className="collapse-content">
|
181 | 236 | <h6>{careplan.title}</h6>
|
|
0 commit comments