forked from aehrc/smart-forms
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix pages component render logic (#3)
* Changes color to string literal instead of custom palette * Rename FormBodyPage to FormTopLevelPage for top level renderer * Add Renderer Logic for Page Container * Add Renderer Logic for Page Container - Non Single Top Level * Changes Page Button design
- Loading branch information
Showing
13 changed files
with
746 additions
and
50 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
8 changes: 4 additions & 4 deletions
8
packages/smart-forms-renderer/src/components/FormComponents/Button.styles.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,10 @@ | ||
import { styled } from '@mui/material/styles'; | ||
import Fab from '@mui/material/Fab'; | ||
|
||
export const StandardFab = styled(Fab)(({ theme }) => ({ | ||
color: theme.palette.customButton.foreground, | ||
background: theme.palette.customButton.background, | ||
export const StandardFab = styled(Fab)(() => ({ | ||
color: '#161C26', | ||
background: '#0ABDC3', | ||
'&:hover': { | ||
background: theme.palette.customButton.backgroundHover | ||
background: '#08979C' | ||
} | ||
})); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
70 changes: 70 additions & 0 deletions
70
packages/smart-forms-renderer/src/components/Renderer/FormTopLevelPage.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
import React from 'react'; | ||
import Grid from '@mui/material/Grid'; | ||
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4'; | ||
import TabContext from '@mui/lab/TabContext'; | ||
import TabPanel from '@mui/lab/TabPanel'; | ||
import GroupItem from '../FormComponents/GroupItem/GroupItem'; | ||
import type { | ||
PropsWithParentIsReadOnlyAttribute, | ||
PropsWithQrItemChangeHandler | ||
} from '../../interfaces/renderProps.interface'; | ||
import { useQuestionnaireStore } from '../../stores'; | ||
|
||
interface FormTopLevelPageProps | ||
extends PropsWithQrItemChangeHandler, | ||
PropsWithParentIsReadOnlyAttribute { | ||
topLevelQItems: QuestionnaireItem[]; | ||
topLevelQRItems: (QuestionnaireResponseItem | QuestionnaireResponseItem[] | undefined)[]; | ||
} | ||
|
||
function FormTopLevelPage(props: FormTopLevelPageProps) { | ||
const { topLevelQItems, topLevelQRItems, parentIsReadOnly, onQrItemChange } = props; | ||
|
||
const pages = useQuestionnaireStore.use.pages(); | ||
const currentPage = useQuestionnaireStore.use.currentPageIndex(); | ||
|
||
return ( | ||
<Grid container spacing={1.5}> | ||
<TabContext value={currentPage.toString()}> | ||
<Grid item xs={12} md={12} lg={12}> | ||
{topLevelQItems.map((qItem, i) => { | ||
const qrItem = topLevelQRItems[i]; | ||
|
||
const isNotRepeatGroup = !Array.isArray(qrItem); | ||
const isPage = !!pages[qItem.linkId]; | ||
|
||
if (!isPage || !isNotRepeatGroup) { | ||
// Something has gone horribly wrong | ||
return null; | ||
} | ||
|
||
const isRepeated = qItem.repeats ?? false; | ||
const pageIsMarkedAsComplete = pages[qItem.linkId].isComplete ?? false; | ||
|
||
return ( | ||
<TabPanel | ||
key={qItem.linkId} | ||
sx={{ p: 0 }} | ||
value={i.toString()} | ||
data-test="renderer-page-panel"> | ||
<GroupItem | ||
qItem={qItem} | ||
qrItem={qrItem ?? null} | ||
isRepeated={isRepeated} | ||
groupCardElevation={1} | ||
pageIsMarkedAsComplete={pageIsMarkedAsComplete} | ||
pages={pages} | ||
currentPageIndex={currentPage} | ||
parentIsReadOnly={parentIsReadOnly} | ||
onQrItemChange={onQrItemChange} | ||
/> | ||
</TabPanel> | ||
); | ||
})} | ||
</Grid> | ||
</TabContext> | ||
</Grid> | ||
); | ||
} | ||
|
||
export default FormTopLevelPage; |
Oops, something went wrong.