@cuemath/leap 3.5.71 → 3.5.73
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/features/homework/homework-card.js +222 -206
- package/dist/features/homework/homework-card.js.map +1 -1
- package/dist/features/milestone/create/comps/add-custom-chapter/add-custom-chapter.js +66 -61
- package/dist/features/milestone/create/comps/add-custom-chapter/add-custom-chapter.js.map +1 -1
- package/dist/features/milestone/create/comps/add-custom-chapter/course-catalog.js +41 -40
- package/dist/features/milestone/create/comps/add-custom-chapter/course-catalog.js.map +1 -1
- package/dist/features/milestone/create/comps/add-custom-chapter/search-chapter/search-chapters.js +32 -25
- package/dist/features/milestone/create/comps/add-custom-chapter/search-chapter/search-chapters.js.map +1 -1
- package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/selected-chapter-item.js +14 -12
- package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/selected-chapter-item.js.map +1 -1
- package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/selected-chapters.js +17 -10
- package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/selected-chapters.js.map +1 -1
- package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/tags-render.js +6 -6
- package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/tags-render.js.map +1 -1
- package/dist/features/milestone/create/comps/body-layout/body-layout.js +23 -22
- package/dist/features/milestone/create/comps/body-layout/body-layout.js.map +1 -1
- package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js +78 -75
- package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js.map +1 -1
- package/dist/features/milestone/create/comps/goal-completion-date-selector/goal-completion-date-selector.js +52 -48
- package/dist/features/milestone/create/comps/goal-completion-date-selector/goal-completion-date-selector.js.map +1 -1
- package/dist/features/milestone/create/milestone-create-styled.js +10 -8
- package/dist/features/milestone/create/milestone-create-styled.js.map +1 -1
- package/dist/features/milestone/create/milestone-create.js +53 -49
- package/dist/features/milestone/create/milestone-create.js.map +1 -1
- package/dist/features/milestone/edit/goal-draft-edit-sync.js +25 -0
- package/dist/features/milestone/edit/goal-draft-edit-sync.js.map +1 -0
- package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js +70 -62
- package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js.map +1 -1
- package/dist/features/milestone/edit/hooks/use-milestone-edit-sync.js +82 -0
- package/dist/features/milestone/edit/hooks/use-milestone-edit-sync.js.map +1 -0
- package/dist/features/milestone/milestone-list-container/hooks/use-milestone-list-sync.js +49 -0
- package/dist/features/milestone/milestone-list-container/hooks/use-milestone-list-sync.js.map +1 -0
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js +111 -107
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js +14 -14
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.js +9 -9
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs-styled.js +22 -17
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs-styled.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js +102 -96
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js +130 -114
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list-container.js +111 -107
- package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list-sync.js +25 -0
- package/dist/features/milestone/milestone-list-container/milestone-list-sync.js.map +1 -0
- package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js +91 -81
- package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js +28 -24
- package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item.js +47 -34
- package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/hooks/use-resource-assign-store.js +7 -0
- package/dist/features/milestone/milestone-resources/resources-assign/hooks/use-resource-assign-store.js.map +1 -0
- package/dist/features/milestone/milestone-resources/resources-assign/hooks/use-resource-assign-sync.js +68 -0
- package/dist/features/milestone/milestone-resources/resources-assign/hooks/use-resource-assign-sync.js.map +1 -0
- package/dist/features/milestone/milestone-resources/resources-assign/resource-assign-sync.js +17 -0
- package/dist/features/milestone/milestone-resources/resources-assign/resource-assign-sync.js.map +1 -0
- package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items.js +45 -49
- package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js +211 -162
- package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/store/resource-assign-store.js +150 -0
- package/dist/features/milestone/milestone-resources/resources-assign/store/resource-assign-store.js.map +1 -0
- package/dist/features/milestone/milestone-resources/resources-list/resources-list.js +70 -68
- package/dist/features/milestone/milestone-resources/resources-list/resources-list.js.map +1 -1
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js +62 -60
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js.map +1 -1
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js +36 -34
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-creation/hooks/use-tests-creation-store.js +7 -0
- package/dist/features/milestone/milestone-tests/tests-creation/hooks/use-tests-creation-store.js.map +1 -0
- package/dist/features/milestone/milestone-tests/tests-creation/hooks/use-tests-creation-sync.js +65 -0
- package/dist/features/milestone/milestone-tests/tests-creation/hooks/use-tests-creation-sync.js.map +1 -0
- package/dist/features/milestone/milestone-tests/tests-creation/store/tests-creation-store.js +63 -0
- package/dist/features/milestone/milestone-tests/tests-creation/store/tests-creation-store.js.map +1 -0
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/chapter-selection/chapter-selection.js +50 -42
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/chapter-selection/chapter-selection.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/difficulty-and-duration-selection.js +67 -63
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/difficulty-and-duration-selection.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/test-preview/test-preview-styled.js +7 -5
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/test-preview/test-preview-styled.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/test-preview/test-preview.js +36 -26
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/test-preview/test-preview.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-creation/tests-creation-sync.js +17 -0
- package/dist/features/milestone/milestone-tests/tests-creation/tests-creation-sync.js.map +1 -0
- package/dist/features/milestone/milestone-tests/tests-creation/tests-creation-types.js +5 -0
- package/dist/features/milestone/milestone-tests/tests-creation/tests-creation-types.js.map +1 -0
- package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js +138 -89
- package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js.map +1 -1
- package/dist/features/sheet-v2/resource-list/resource-list.js +28 -26
- package/dist/features/sheet-v2/resource-list/resource-list.js.map +1 -1
- package/dist/features/trial-session/comps/learning-plan/index.js +303 -91
- package/dist/features/trial-session/comps/learning-plan/index.js.map +1 -1
- package/dist/features/trial-session/comps/learning-plan/learning-plan-styled.js +7 -6
- package/dist/features/trial-session/comps/learning-plan/learning-plan-styled.js.map +1 -1
- package/dist/features/trial-session/hooks/use-learning-plan-scroll-sync.js +75 -0
- package/dist/features/trial-session/hooks/use-learning-plan-scroll-sync.js.map +1 -0
- package/dist/features/trial-session/hooks/use-trial-session-navigation.js +113 -116
- package/dist/features/trial-session/hooks/use-trial-session-navigation.js.map +1 -1
- package/dist/features/trial-session/trial-session-types.js +3 -2
- package/dist/features/trial-session/trial-session-types.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-behavior-helper.js +90 -74
- package/dist/features/worksheet/worksheet/worksheet-behavior-helper.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-types.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet.js +39 -28
- package/dist/features/worksheet/worksheet/worksheet.js.map +1 -1
- package/dist/features/worksheet/worksheet-preview/dynamic-worksheet-preview/dynamic-worksheet-preview.js +27 -27
- package/dist/features/worksheet/worksheet-preview/dynamic-worksheet-preview/dynamic-worksheet-preview.js.map +1 -1
- package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js +27 -24
- package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js.map +1 -1
- package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js +41 -37
- package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js.map +1 -1
- package/dist/features/worksheet/worksheet-preview/worksheet-preview.js +2 -2
- package/dist/features/worksheet/worksheet-preview/worksheet-preview.js.map +1 -1
- package/dist/index.d.ts +69 -4
- package/dist/node_modules/uuid/dist/esm-browser/native.js +7 -0
- package/dist/node_modules/uuid/dist/esm-browser/native.js.map +1 -0
- package/dist/node_modules/uuid/dist/esm-browser/rng.js +3 -2
- package/dist/node_modules/uuid/dist/esm-browser/rng.js.map +1 -1
- package/dist/node_modules/uuid/dist/esm-browser/stringify.js +6 -10
- package/dist/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -1
- package/dist/node_modules/uuid/dist/esm-browser/v4.js +12 -9
- package/dist/node_modules/uuid/dist/esm-browser/v4.js.map +1 -1
- package/package.json +1 -1
- package/dist/features/trial-session/comps/learning-plan/use-learning-plan-scroll-sync.js +0 -37
- package/dist/features/trial-session/comps/learning-plan/use-learning-plan-scroll-sync.js.map +0 -1
- package/dist/node_modules/uuid/dist/esm-browser/regex.js +0 -5
- package/dist/node_modules/uuid/dist/esm-browser/regex.js.map +0 -1
- package/dist/node_modules/uuid/dist/esm-browser/validate.js +0 -8
- package/dist/node_modules/uuid/dist/esm-browser/validate.js.map +0 -1
package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chapters-selection-step.js","sources":["../../../../../../src/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.tsx"],"sourcesContent":["import { memo, useCallback, useContext, useMemo, type FC } from 'react';\n\nimport Bin2Icon from '../../../../../assets/line-icons/icons/bin2';\nimport PlusIcon from '../../../../../assets/line-icons/icons/plus';\nimport ArrowTooltip from '../../../../ui/arrow-tooltip/arrow-tooltip';\nimport Button from '../../../../ui/buttons/button/button';\nimport IconButton from '../../../../ui/buttons/icon-button/icon-button';\nimport { useUIContext } from '../../../../ui/context/context';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport { WARNING_MESSAGES } from '../../../constants';\nimport { GOAL_EDIT_FLOWS } from '../../milestone-create-constants';\nimport MilestoneCreateContext from '../../milestone-create-context';\nimport type { IFormStepProps } from '../../milestone-create-types';\nimport BodyLayout from '../body-layout/body-layout';\nimport ClassDetailsStep from '../class-details-step/class-details-step';\nimport ChapterSelection from './chapter-selection-step-v2/chapter-selection';\nimport * as Styled from './chapters-selection-step-styled';\nimport { useChapterListUpdate } from './use-chapter-list-update';\nimport { computeChangeDetection } from './utils';\n\nconst ChaptersSelectionStep: FC<IFormStepProps> = memo(function ChaptersSelectionStep(props) {\n const {\n currentStep,\n onFormDataChange,\n onChapterExitWarning,\n formData,\n studentName,\n studentId,\n config,\n isGoalCreation,\n onPreSubmit,\n courseStream,\n classRatio,\n enrollmentType,\n canDeleteGoal,\n onDeleteGoal,\n isTeacherTrainingAccount,\n } = props;\n const { flow } = useContext(MilestoneCreateContext);\n const { onEvent: trackEvent } = useUIContext();\n\n const {\n action_plan: {\n green: { share_message_template: submitBaseMessage },\n },\n } = config;\n const { buttonLabel, name, title } = currentStep;\n const analyticsProps = {\n step: name,\n };\n const { testType, primaryChaptersList, board, major, region, chapterGoalCategory } = formData;\n\n const { primaryGoalCategory } = chapterGoalCategory || {};\n\n const goalEditFlow = canDeleteGoal && (flow === 'DRAFT_EDIT' || flow === 'EDIT');\n\n //* Hook that handles making api call for cue_chapters updating primaryChapterList.\n const { isProcessing, isProcessed } = useChapterListUpdate({\n formData,\n onFormDataChange,\n studentId,\n });\n\n const isAtleastOneChapterAdded = useMemo(() => {\n if (primaryChaptersList) {\n return primaryChaptersList.some(chapter => chapter.added);\n }\n\n return false;\n }, [primaryChaptersList]);\n\n const handleNext = useCallback(() => {\n const selectedChaptersList = primaryChaptersList?.filter(chapter => {\n return Boolean(chapter.added);\n });\n\n const searchedAndAddedChapterLength =\n primaryChaptersList?.filter(\n chapter => chapter.program_id !== primaryGoalCategory?.program_code && chapter.added,\n ).length ?? 0;\n\n const suggestedChaptersLength =\n primaryChaptersList?.filter(chapter => chapter.program_id === primaryGoalCategory?.program_id)\n .length ?? 0;\n\n trackEvent('CHAPTER_DETAILS_ADDED', {\n total_chapter_added: selectedChaptersList?.length ?? 0,\n searched_chapter_added: searchedAndAddedChapterLength,\n suggested_chapter_added: suggestedChaptersLength,\n });\n\n if (isGoalCreation) {\n onFormDataChange({\n primaryChaptersList: primaryChaptersList,\n selectedChaptersList: selectedChaptersList,\n searchedChaptersList: [],\n chapterSubStages: 'date-selection',\n committed: {\n selectedChaptersList: true,\n chapterSubStages: true,\n grade: true,\n board: !!board,\n major: !!major,\n region: !!region,\n },\n });\n } else if (flow) {\n onPreSubmit?.({ isDraftPlan: false, flow, submitBaseMessage });\n }\n }, [\n primaryChaptersList,\n board,\n major,\n region,\n trackEvent,\n onFormDataChange,\n onPreSubmit,\n flow,\n isGoalCreation,\n submitBaseMessage,\n primaryGoalCategory,\n ]);\n\n const handleOnAddCustomChapter = useCallback(() => {\n onFormDataChange({\n chapterSubStages: 'custom-chapters',\n selectedChaptersList: undefined,\n committed: {\n chapterSubStages: true,\n selectedChaptersList: false,\n },\n });\n }, [onFormDataChange]);\n\n const handleOnBackButtonClick = useCallback(\n (handleBack: () => void) => {\n if (!flow) return null;\n\n const isChangeDetected = computeChangeDetection(primaryChaptersList, primaryGoalCategory);\n\n if (GOAL_EDIT_FLOWS.includes(flow) || !primaryChaptersList?.length || !isChangeDetected) {\n handleBack();\n } else {\n onChapterExitWarning?.({\n onSuccess: handleBack,\n description: WARNING_MESSAGES.CHAPTER_EXIT_WARNING,\n });\n }\n },\n [onChapterExitWarning, flow, primaryChaptersList, primaryGoalCategory],\n );\n\n return (\n <BodyLayout\n stepName={name}\n headerElement={\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $flexGapX={1} $width=\"100%\">\n <Text $renderAs=\"ab2\">{isGoalCreation ? title : 'Chapters'}</Text>\n\n {isGoalCreation && flow === 'CREATE' && (\n <ClassDetailsStep\n studentName={studentName}\n studentId={studentId}\n currentStep={currentStep}\n config={config}\n formData={formData}\n courseStream={courseStream}\n classRatio={classRatio}\n onFormDataChange={onFormDataChange}\n onChapterExitWarning={onChapterExitWarning}\n enrollmentType={enrollmentType}\n isTeacherTrainingAccount={isTeacherTrainingAccount}\n />\n )}\n\n {isGoalCreation && goalEditFlow && (\n <Styled.BinIconWrapper>\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem=\"Delete goal\"\n zIndex={10}\n widthX={6}\n >\n <IconButton\n size=\"xsmall\"\n renderAs=\"tertiary\"\n Icon={Bin2Icon}\n analyticsLabel=\"delete_goal_plan\"\n onClick={onDeleteGoal}\n />\n </ArrowTooltip>\n </Styled.BinIconWrapper>\n )}\n </FlexView>\n }\n bodyHeight=\"100%\"\n onBackButtonClick={handleOnBackButtonClick}\n bodyElement={\n <ChapterSelection\n config={config}\n classRatio={classRatio}\n isGoalCreation={isGoalCreation}\n formData={formData}\n studentName={studentName}\n isProcessed={isProcessed}\n isProcessing={isProcessing}\n courseStream={courseStream}\n onFormDataChange={onFormDataChange}\n onChapterExitWarning={onChapterExitWarning}\n enrollmentType={enrollmentType}\n isTeacherTrainingAccount={isTeacherTrainingAccount}\n />\n }\n footerElement={\n <FlexView $flexDirection=\"row\" $flexGap={12} $alignItems=\"center\">\n {(!isGoalCreation || testType === 'no-test') && (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"top\"\n widthX={6.5}\n zIndex={20}\n tooltipItem=\"Add a chapter\"\n >\n <Styled.ButtonWrapper $borderRadius={50}>\n <IconButton\n renderAs=\"secondary\"\n analyticsLabel=\"Add custom chapters\"\n Icon={PlusIcon}\n disabled={isProcessing}\n onClick={handleOnAddCustomChapter}\n />\n </Styled.ButtonWrapper>\n </ArrowTooltip>\n )}\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"top\"\n widthX={11}\n zIndex={20}\n tooltipItem=\"Please select atleast one chapter\"\n hidden={isAtleastOneChapterAdded}\n >\n <Styled.ButtonWrapper>\n <Button\n renderAs=\"primary\"\n size=\"small\"\n shape=\"square\"\n widthX={9}\n label={buttonLabel}\n onClick={handleNext}\n iconPosition=\"right\"\n busy={isProcessing}\n disabled={!isAtleastOneChapterAdded}\n analyticsProps={analyticsProps}\n />\n </Styled.ButtonWrapper>\n </ArrowTooltip>\n </FlexView>\n }\n />\n );\n});\n\nexport default ChaptersSelectionStep;\n"],"names":["ChaptersSelectionStep","memo","props","currentStep","onFormDataChange","onChapterExitWarning","formData","studentName","studentId","config","isGoalCreation","onPreSubmit","courseStream","classRatio","enrollmentType","canDeleteGoal","onDeleteGoal","isTeacherTrainingAccount","flow","useContext","MilestoneCreateContext","trackEvent","useUIContext","submitBaseMessage","buttonLabel","name","title","analyticsProps","testType","primaryChaptersList","board","major","region","chapterGoalCategory","primaryGoalCategory","goalEditFlow","isProcessing","isProcessed","useChapterListUpdate","isAtleastOneChapterAdded","useMemo","chapter","handleNext","useCallback","selectedChaptersList","searchedAndAddedChapterLength","suggestedChaptersLength","handleOnAddCustomChapter","handleOnBackButtonClick","handleBack","isChangeDetected","computeChangeDetection","GOAL_EDIT_FLOWS","WARNING_MESSAGES","jsx","BodyLayout","jsxs","FlexView","Text","ClassDetailsStep","Styled.BinIconWrapper","ArrowTooltip","IconButton","Bin2Icon","ChapterSelection","Styled.ButtonWrapper","PlusIcon","Button"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chapters-selection-step.js","sources":["../../../../../../src/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.tsx"],"sourcesContent":["import { memo, useCallback, useContext, useMemo, type FC } from 'react';\n\nimport Bin2Icon from '../../../../../assets/line-icons/icons/bin2';\nimport PlusIcon from '../../../../../assets/line-icons/icons/plus';\nimport ArrowTooltip from '../../../../ui/arrow-tooltip/arrow-tooltip';\nimport Button from '../../../../ui/buttons/button/button';\nimport IconButton from '../../../../ui/buttons/icon-button/icon-button';\nimport { useUIContext } from '../../../../ui/context/context';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport { WARNING_MESSAGES } from '../../../constants';\nimport { GOAL_EDIT_FLOWS } from '../../milestone-create-constants';\nimport MilestoneCreateContext from '../../milestone-create-context';\nimport type { IFormStepProps } from '../../milestone-create-types';\nimport BodyLayout from '../body-layout/body-layout';\nimport ClassDetailsStep from '../class-details-step/class-details-step';\nimport ChapterSelection from './chapter-selection-step-v2/chapter-selection';\nimport * as Styled from './chapters-selection-step-styled';\nimport { useChapterListUpdate } from './use-chapter-list-update';\nimport { computeChangeDetection } from './utils';\n\nconst ChaptersSelectionStep: FC<IFormStepProps> = memo(function ChaptersSelectionStep(props) {\n const {\n currentStep,\n onFormDataChange,\n onChapterExitWarning,\n formData,\n studentName,\n studentId,\n config,\n isGoalCreation,\n onPreSubmit,\n courseStream,\n classRatio,\n enrollmentType,\n canDeleteGoal,\n onDeleteGoal,\n isTeacherTrainingAccount,\n userType,\n useAbsoluteFooter,\n } = props;\n const { flow } = useContext(MilestoneCreateContext);\n const { onEvent: trackEvent } = useUIContext();\n\n const {\n action_plan: {\n green: { share_message_template: submitBaseMessage },\n },\n } = config;\n const { buttonLabel, name, title } = currentStep;\n const analyticsProps = {\n step: name,\n };\n const { testType, primaryChaptersList, board, major, region, chapterGoalCategory } = formData;\n\n const { primaryGoalCategory } = chapterGoalCategory || {};\n\n const goalEditFlow = canDeleteGoal && (flow === 'DRAFT_EDIT' || flow === 'EDIT');\n const showDeleteButton = !!(isGoalCreation && goalEditFlow && onDeleteGoal);\n\n //* Hook that handles making api call for cue_chapters updating primaryChapterList.\n const { isProcessing, isProcessed } = useChapterListUpdate({\n formData,\n onFormDataChange,\n studentId,\n });\n\n const isAtleastOneChapterAdded = useMemo(() => {\n if (primaryChaptersList) {\n return primaryChaptersList.some(chapter => chapter.added);\n }\n\n return false;\n }, [primaryChaptersList]);\n\n const handleNext = useCallback(() => {\n const selectedChaptersList = primaryChaptersList?.filter(chapter => {\n return Boolean(chapter.added);\n });\n\n const searchedAndAddedChapterLength =\n primaryChaptersList?.filter(\n chapter => chapter.program_id !== primaryGoalCategory?.program_code && chapter.added,\n ).length ?? 0;\n\n const suggestedChaptersLength =\n primaryChaptersList?.filter(chapter => chapter.program_id === primaryGoalCategory?.program_id)\n .length ?? 0;\n\n trackEvent('CHAPTER_DETAILS_ADDED', {\n total_chapter_added: selectedChaptersList?.length ?? 0,\n searched_chapter_added: searchedAndAddedChapterLength,\n suggested_chapter_added: suggestedChaptersLength,\n });\n\n if (isGoalCreation) {\n onFormDataChange({\n primaryChaptersList: primaryChaptersList,\n selectedChaptersList: selectedChaptersList,\n searchedChaptersList: [],\n chapterSubStages: 'date-selection',\n committed: {\n selectedChaptersList: true,\n chapterSubStages: true,\n grade: true,\n board: !!board,\n major: !!major,\n region: !!region,\n },\n });\n } else if (flow) {\n onPreSubmit?.({ isDraftPlan: false, flow, submitBaseMessage });\n }\n }, [\n primaryChaptersList,\n board,\n major,\n region,\n trackEvent,\n onFormDataChange,\n onPreSubmit,\n flow,\n isGoalCreation,\n submitBaseMessage,\n primaryGoalCategory,\n ]);\n\n const handleOnAddCustomChapter = useCallback(() => {\n onFormDataChange({\n chapterSubStages: 'custom-chapters',\n selectedChaptersList: undefined,\n committed: {\n chapterSubStages: true,\n selectedChaptersList: false,\n },\n });\n }, [onFormDataChange]);\n\n const handleOnBackButtonClick = useCallback(\n (handleBack: () => void) => {\n if (!flow) return null;\n\n const isChangeDetected = computeChangeDetection(primaryChaptersList, primaryGoalCategory);\n\n if (GOAL_EDIT_FLOWS.includes(flow) || !primaryChaptersList?.length || !isChangeDetected) {\n handleBack();\n } else {\n onChapterExitWarning?.({\n onSuccess: handleBack,\n description: WARNING_MESSAGES.CHAPTER_EXIT_WARNING,\n });\n }\n },\n [onChapterExitWarning, flow, primaryChaptersList, primaryGoalCategory],\n );\n\n return (\n <BodyLayout\n stepName={name}\n useAbsoluteFooter={useAbsoluteFooter}\n headerElement={\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $flexGapX={1} $width=\"100%\">\n <Text $renderAs=\"ab2\">{isGoalCreation ? title : 'Chapters'}</Text>\n\n {isGoalCreation && flow === 'CREATE' && (\n <ClassDetailsStep\n studentName={studentName}\n studentId={studentId}\n currentStep={currentStep}\n config={config}\n formData={formData}\n courseStream={courseStream}\n classRatio={classRatio}\n onFormDataChange={onFormDataChange}\n onChapterExitWarning={onChapterExitWarning}\n enrollmentType={enrollmentType}\n isTeacherTrainingAccount={isTeacherTrainingAccount}\n />\n )}\n\n {showDeleteButton && (\n <Styled.BinIconWrapper>\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem=\"Delete goal\"\n zIndex={10}\n widthX={6}\n >\n <IconButton\n size=\"xsmall\"\n renderAs=\"tertiary\"\n Icon={Bin2Icon}\n analyticsLabel=\"delete_goal_plan\"\n onClick={onDeleteGoal}\n />\n </ArrowTooltip>\n </Styled.BinIconWrapper>\n )}\n </FlexView>\n }\n bodyHeight=\"100%\"\n onBackButtonClick={handleOnBackButtonClick}\n bodyElement={\n <ChapterSelection\n config={config}\n classRatio={classRatio}\n isGoalCreation={isGoalCreation}\n formData={formData}\n studentName={studentName}\n isProcessed={isProcessed}\n isProcessing={isProcessing}\n courseStream={courseStream}\n onFormDataChange={onFormDataChange}\n onChapterExitWarning={onChapterExitWarning}\n enrollmentType={enrollmentType}\n isTeacherTrainingAccount={isTeacherTrainingAccount}\n />\n }\n footerElement={\n userType === 'STUDENT' ? undefined : (\n <FlexView $flexDirection=\"row\" $flexGap={12} $alignItems=\"center\">\n {(!isGoalCreation || testType === 'no-test') && (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"top\"\n widthX={6.5}\n zIndex={20}\n tooltipItem=\"Add a chapter\"\n >\n <Styled.ButtonWrapper $borderRadius={50}>\n <IconButton\n renderAs=\"secondary\"\n analyticsLabel=\"Add custom chapters\"\n Icon={PlusIcon}\n disabled={isProcessing}\n onClick={handleOnAddCustomChapter}\n />\n </Styled.ButtonWrapper>\n </ArrowTooltip>\n )}\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"top\"\n widthX={11}\n zIndex={20}\n tooltipItem=\"Please select atleast one chapter\"\n hidden={isAtleastOneChapterAdded}\n >\n <Styled.ButtonWrapper>\n <Button\n renderAs=\"primary\"\n size=\"small\"\n shape=\"square\"\n widthX={9}\n label={buttonLabel}\n onClick={handleNext}\n iconPosition=\"right\"\n busy={isProcessing}\n disabled={!isAtleastOneChapterAdded}\n analyticsProps={analyticsProps}\n />\n </Styled.ButtonWrapper>\n </ArrowTooltip>\n </FlexView>\n )\n }\n />\n );\n});\n\nexport default ChaptersSelectionStep;\n"],"names":["ChaptersSelectionStep","memo","props","currentStep","onFormDataChange","onChapterExitWarning","formData","studentName","studentId","config","isGoalCreation","onPreSubmit","courseStream","classRatio","enrollmentType","canDeleteGoal","onDeleteGoal","isTeacherTrainingAccount","userType","useAbsoluteFooter","flow","useContext","MilestoneCreateContext","trackEvent","useUIContext","submitBaseMessage","buttonLabel","name","title","analyticsProps","testType","primaryChaptersList","board","major","region","chapterGoalCategory","primaryGoalCategory","showDeleteButton","isProcessing","isProcessed","useChapterListUpdate","isAtleastOneChapterAdded","useMemo","chapter","handleNext","useCallback","selectedChaptersList","searchedAndAddedChapterLength","suggestedChaptersLength","handleOnAddCustomChapter","handleOnBackButtonClick","handleBack","isChangeDetected","computeChangeDetection","GOAL_EDIT_FLOWS","WARNING_MESSAGES","jsx","BodyLayout","jsxs","FlexView","Text","ClassDetailsStep","Styled.BinIconWrapper","ArrowTooltip","IconButton","Bin2Icon","ChapterSelection","Styled.ButtonWrapper","PlusIcon","Button"],"mappings":"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"}
|
|
@@ -1,39 +1,42 @@
|
|
|
1
|
-
import { jsx as s, jsxs as
|
|
2
|
-
import { memo as
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
1
|
+
import { jsx as s, jsxs as z } from "react/jsx-runtime";
|
|
2
|
+
import { memo as H, useState as C, useCallback as l, useMemo as P, useEffect as J } from "react";
|
|
3
|
+
import K from "../../../../../assets/line-icons/icons/draft.js";
|
|
4
|
+
import Q from "../../../../ui/buttons/button/button.js";
|
|
5
|
+
import Z from "../../../../ui/buttons/icon-button/icon-button.js";
|
|
6
6
|
import y from "../../../../ui/layout/flex-view.js";
|
|
7
|
-
import
|
|
8
|
-
import { ONE_YEAR_TIMESTAMP_IN_MILLISECONDS as
|
|
9
|
-
import
|
|
10
|
-
import { useMilestoneContext as
|
|
11
|
-
import
|
|
7
|
+
import F from "../../../../ui/text/text.js";
|
|
8
|
+
import { ONE_YEAR_TIMESTAMP_IN_MILLISECONDS as ee } from "../../../constants.js";
|
|
9
|
+
import te from "../../../hooks/use-submit-goal-creation.js";
|
|
10
|
+
import { useMilestoneContext as oe } from "../../milestone-create-context.js";
|
|
11
|
+
import se from "../body-layout/body-layout.js";
|
|
12
12
|
import { ButtonWrapper as $ } from "./goal-completion-date-selector-styled.js";
|
|
13
|
-
import
|
|
13
|
+
import ae from "./goal-completion-date-selector-view.js";
|
|
14
14
|
import { lastDayOfMonth as v } from "../../../../../node_modules/date-fns/lastDayOfMonth.js";
|
|
15
|
-
import { addDays as
|
|
16
|
-
import { eachMonthOfInterval as
|
|
17
|
-
import { addMonths as
|
|
15
|
+
import { addDays as ne } from "../../../../../node_modules/date-fns/addDays.js";
|
|
16
|
+
import { eachMonthOfInterval as re } from "../../../../../node_modules/date-fns/eachMonthOfInterval.js";
|
|
17
|
+
import { addMonths as ie } from "../../../../../node_modules/date-fns/addMonths.js";
|
|
18
18
|
import { formatDate as c } from "../../../../../node_modules/date-fns/format.js";
|
|
19
|
-
const
|
|
19
|
+
const ve = H(function({
|
|
20
20
|
formData: D,
|
|
21
|
-
config:
|
|
22
|
-
studentId:
|
|
21
|
+
config: S,
|
|
22
|
+
studentId: _,
|
|
23
23
|
milestoneId: A = "",
|
|
24
24
|
currentStep: G,
|
|
25
25
|
onFormDataChange: n,
|
|
26
26
|
onPreSubmit: m,
|
|
27
|
-
courseStream: O
|
|
27
|
+
courseStream: O,
|
|
28
|
+
useAbsoluteFooter: B,
|
|
29
|
+
userType: L,
|
|
30
|
+
disablePublish: N
|
|
28
31
|
}) {
|
|
29
|
-
const [f, d] = C(""), [h,
|
|
32
|
+
const [f, d] = C(""), [h, j] = C(!1), { flow: a } = oe(), {
|
|
30
33
|
share_message: {
|
|
31
34
|
default: {
|
|
32
35
|
create_message_template: E,
|
|
33
36
|
update_message_template: M
|
|
34
37
|
}
|
|
35
38
|
}
|
|
36
|
-
} =
|
|
39
|
+
} = S, u = l(
|
|
37
40
|
(e) => {
|
|
38
41
|
if (a) {
|
|
39
42
|
const o = a === "EDIT" ? M : E;
|
|
@@ -45,19 +48,19 @@ const xe = q(function({
|
|
|
45
48
|
}
|
|
46
49
|
},
|
|
47
50
|
[a, E, M, m]
|
|
48
|
-
), { isProcessing: g, onSubmit: I } =
|
|
51
|
+
), { isProcessing: g, onSubmit: I } = te({
|
|
49
52
|
formData: D,
|
|
50
|
-
studentId:
|
|
53
|
+
studentId: _,
|
|
51
54
|
onSubmit: u,
|
|
52
55
|
setError: d,
|
|
53
56
|
milestoneId: A,
|
|
54
57
|
flow: a ?? "CREATE",
|
|
55
58
|
courseStream: O
|
|
56
|
-
}), { testType:
|
|
57
|
-
const e = /* @__PURE__ */ new Date(), o = v(e) ?
|
|
58
|
-
return
|
|
59
|
+
}), { testType: k, milestoneEndDate: t, committed: R } = D, { milestoneEndDate: T } = R, { title: W } = G, U = a === "EDIT" ? "Update goal" : "Create goal", w = /* @__PURE__ */ new Date(), r = c(w.setDate(w.getDate() + 1), "yyyy-MM-dd"), i = c(Date.now() + ee, "yyyy-MM-dd"), V = P(() => {
|
|
60
|
+
const e = /* @__PURE__ */ new Date(), o = v(e) ? ne(e, 1) : e;
|
|
61
|
+
return re({
|
|
59
62
|
start: o,
|
|
60
|
-
end:
|
|
63
|
+
end: ie(o, 11)
|
|
61
64
|
}).map((b) => {
|
|
62
65
|
const x = v(b);
|
|
63
66
|
return {
|
|
@@ -66,7 +69,7 @@ const xe = q(function({
|
|
|
66
69
|
value: x
|
|
67
70
|
};
|
|
68
71
|
});
|
|
69
|
-
}, []),
|
|
72
|
+
}, []), X = l(
|
|
70
73
|
(e) => {
|
|
71
74
|
n({
|
|
72
75
|
milestoneEndDate: e,
|
|
@@ -74,7 +77,7 @@ const xe = q(function({
|
|
|
74
77
|
});
|
|
75
78
|
},
|
|
76
79
|
[n]
|
|
77
|
-
),
|
|
80
|
+
), Y = l(
|
|
78
81
|
(e) => {
|
|
79
82
|
const o = e.target.value;
|
|
80
83
|
if (o) {
|
|
@@ -97,52 +100,53 @@ const xe = q(function({
|
|
|
97
100
|
milestoneEndDate: !0,
|
|
98
101
|
milestoneEndDateIsTentative: !0
|
|
99
102
|
}
|
|
100
|
-
}),
|
|
103
|
+
}), j(!0));
|
|
101
104
|
},
|
|
102
105
|
[t, r, i, n, I]
|
|
103
|
-
),
|
|
106
|
+
), q = l(() => {
|
|
104
107
|
p(!0);
|
|
105
108
|
}, [p]);
|
|
106
|
-
return
|
|
107
|
-
|
|
108
|
-
}, [
|
|
109
|
-
|
|
109
|
+
return J(() => {
|
|
110
|
+
T && h && u(!0);
|
|
111
|
+
}, [T, h, u]), /* @__PURE__ */ s(
|
|
112
|
+
se,
|
|
110
113
|
{
|
|
111
|
-
|
|
114
|
+
useAbsoluteFooter: B,
|
|
115
|
+
headerElement: /* @__PURE__ */ s(y, { $flexDirection: "row", $alignItems: "center", $flexGapX: 1, children: /* @__PURE__ */ s(F, { $renderAs: "ab2", children: W }) }),
|
|
112
116
|
bodyHeight: "100%",
|
|
113
117
|
bodyElement: /* @__PURE__ */ s(y, { $width: "100%", $height: "100%", $alignItems: "center", $justifyContent: "center", children: /* @__PURE__ */ s(
|
|
114
|
-
|
|
118
|
+
ae,
|
|
115
119
|
{
|
|
116
|
-
testType:
|
|
120
|
+
testType: k,
|
|
117
121
|
tomorrowsDate: r,
|
|
118
122
|
oneYearFutureDate: i,
|
|
119
123
|
errorMessage: f,
|
|
120
|
-
durationOptions:
|
|
124
|
+
durationOptions: V,
|
|
121
125
|
milestoneEndDate: t,
|
|
122
|
-
handleDateChange:
|
|
123
|
-
handleDurationChange:
|
|
126
|
+
handleDateChange: Y,
|
|
127
|
+
handleDurationChange: X
|
|
124
128
|
}
|
|
125
129
|
) }),
|
|
126
|
-
footerElement: /* @__PURE__ */
|
|
130
|
+
footerElement: L === "STUDENT" ? void 0 : /* @__PURE__ */ z(y, { $flexDirection: "row", $flexGap: 12, $alignItems: "center", children: [
|
|
127
131
|
a !== "EDIT" && /* @__PURE__ */ s($, { $borderRadius: 50, children: /* @__PURE__ */ s(
|
|
128
|
-
|
|
132
|
+
Z,
|
|
129
133
|
{
|
|
130
134
|
renderAs: "secondary",
|
|
131
135
|
analyticsLabel: "Save as draft",
|
|
132
|
-
Icon:
|
|
136
|
+
Icon: K,
|
|
133
137
|
disabled: !t || g,
|
|
134
|
-
onClick:
|
|
138
|
+
onClick: q
|
|
135
139
|
}
|
|
136
140
|
) }),
|
|
137
141
|
/* @__PURE__ */ s($, { children: /* @__PURE__ */ s(
|
|
138
|
-
|
|
142
|
+
Q,
|
|
139
143
|
{
|
|
140
144
|
renderAs: "primary",
|
|
141
145
|
size: "small",
|
|
142
146
|
shape: "square",
|
|
143
147
|
widthX: 9,
|
|
144
|
-
label:
|
|
145
|
-
disabled: !t || g,
|
|
148
|
+
label: U,
|
|
149
|
+
disabled: !t || g || !!N,
|
|
146
150
|
onClick: p
|
|
147
151
|
}
|
|
148
152
|
) })
|
|
@@ -151,6 +155,6 @@ const xe = q(function({
|
|
|
151
155
|
);
|
|
152
156
|
});
|
|
153
157
|
export {
|
|
154
|
-
|
|
158
|
+
ve as default
|
|
155
159
|
};
|
|
156
160
|
//# sourceMappingURL=goal-completion-date-selector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"goal-completion-date-selector.js","sources":["../../../../../../src/features/milestone/create/comps/goal-completion-date-selector/goal-completion-date-selector.tsx"],"sourcesContent":["import { addDays, addMonths, eachMonthOfInterval, format, lastDayOfMonth } from 'date-fns';\nimport { memo, useCallback, useEffect, useMemo, useState, type FC } from 'react';\n\nimport DraftIcon from '../../../../../assets/line-icons/icons/draft';\nimport Button from '../../../../ui/buttons/button/button';\nimport IconButton from '../../../../ui/buttons/icon-button/icon-button';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport { ONE_YEAR_TIMESTAMP_IN_MILLISECONDS } from '../../../constants';\nimport useSubmitGoalCreation from '../../../hooks/use-submit-goal-creation';\nimport { useMilestoneContext } from '../../milestone-create-context';\nimport type { IFormStepProps } from '../../milestone-create-types';\nimport BodyLayout from '../body-layout/body-layout';\nimport * as Styled from './goal-completion-date-selector-styled';\nimport GoalCompletionDateSelectorView from './goal-completion-date-selector-view';\n\nconst GoalCompletionDateSelector: FC<IFormStepProps> = memo(function GoalCompletionDateSelector({\n formData,\n config,\n studentId,\n milestoneId = '',\n currentStep,\n onFormDataChange,\n onPreSubmit,\n courseStream,\n}) {\n const [errorMessage, setErrorMessage] = useState('');\n const [proceedingWithChanges, setProceedingWithChanges] = useState(false);\n\n const { flow } = useMilestoneContext();\n\n const {\n share_message: {\n default: {\n create_message_template: createMessageTemplate,\n update_message_template: updateMessageTemplate,\n },\n },\n } = config;\n\n const handleGoalCreationSubmission = useCallback(\n (isGoalCreation?: boolean) => {\n if (flow) {\n const submitBaseMessage = flow === 'EDIT' ? updateMessageTemplate : createMessageTemplate;\n\n onPreSubmit?.({\n isDraftPlan: !isGoalCreation,\n flow: flow,\n submitBaseMessage,\n });\n }\n },\n [flow, createMessageTemplate, updateMessageTemplate, onPreSubmit],\n );\n\n const { isProcessing, onSubmit } = useSubmitGoalCreation({\n formData,\n studentId,\n onSubmit: handleGoalCreationSubmission,\n setError: setErrorMessage,\n milestoneId,\n flow: flow ?? 'CREATE',\n courseStream,\n });\n\n const { testType, milestoneEndDate, committed } = formData;\n const { milestoneEndDate: committedMilestoneEndDate } = committed;\n const { title } = currentStep;\n const buttonLabel = flow === 'EDIT' ? 'Update goal' : 'Create goal';\n\n const newDate = new Date();\n const tomorrowsDate = format(newDate.setDate(newDate.getDate() + 1), 'yyyy-MM-dd');\n\n const oneYearFutureDate = format(Date.now() + ONE_YEAR_TIMESTAMP_IN_MILLISECONDS, 'yyyy-MM-dd');\n\n const durationOptions = useMemo(() => {\n const today = new Date();\n const startDay = lastDayOfMonth(today) ? addDays(today, 1) : today;\n const months = eachMonthOfInterval({\n start: startDay,\n end: addMonths(startDay, 11),\n });\n\n return months.map(date => {\n const lastDay = lastDayOfMonth(date);\n\n return {\n id: format(lastDay, 'yyyy-MM-dd'),\n label: format(date, 'MMMM yyyy'),\n value: lastDay,\n };\n });\n }, []);\n\n const handleDurationChange = useCallback(\n (date: string) => {\n onFormDataChange({\n milestoneEndDate: date,\n milestoneEndDateIsTentative: true,\n });\n },\n [onFormDataChange],\n );\n\n const handleDateChange = useCallback<\n NonNullable<React.InputHTMLAttributes<HTMLInputElement>['onChange']>\n >(\n event => {\n const value = event.target.value;\n\n if (!value) return;\n\n if (errorMessage && value >= tomorrowsDate && value < oneYearFutureDate) {\n setErrorMessage('');\n\n return;\n }\n\n onFormDataChange({\n milestoneEndDate: value,\n milestoneEndDateIsTentative: true,\n });\n },\n [tomorrowsDate, errorMessage, onFormDataChange, oneYearFutureDate],\n );\n\n const handleNext = useCallback(\n (isDraft?: boolean) => {\n if (\n milestoneEndDate &&\n (milestoneEndDate < tomorrowsDate || milestoneEndDate > oneYearFutureDate)\n ) {\n if (milestoneEndDate < tomorrowsDate) {\n setErrorMessage('Please enter a future date');\n } else {\n setErrorMessage('Please select a date within the next year');\n }\n } else if (isDraft) {\n onSubmit(true);\n } else {\n onFormDataChange({\n milestoneEndDate,\n committed: {\n milestoneEndDate: true,\n milestoneEndDateIsTentative: true,\n },\n });\n setProceedingWithChanges(true);\n }\n },\n [milestoneEndDate, tomorrowsDate, oneYearFutureDate, onFormDataChange, onSubmit],\n );\n\n const handleOnSaveAsDraft = useCallback(() => {\n handleNext(true);\n }, [handleNext]);\n\n useEffect(() => {\n if (committedMilestoneEndDate && proceedingWithChanges) {\n handleGoalCreationSubmission(true);\n }\n }, [committedMilestoneEndDate, proceedingWithChanges, handleGoalCreationSubmission]);\n\n return (\n <BodyLayout\n headerElement={\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $flexGapX={1}>\n <Text $renderAs=\"ab2\">{title}</Text>\n </FlexView>\n }\n bodyHeight=\"100%\"\n bodyElement={\n <FlexView $width=\"100%\" $height=\"100%\" $alignItems=\"center\" $justifyContent=\"center\">\n <GoalCompletionDateSelectorView\n testType={testType}\n tomorrowsDate={tomorrowsDate}\n oneYearFutureDate={oneYearFutureDate}\n errorMessage={errorMessage}\n durationOptions={durationOptions}\n milestoneEndDate={milestoneEndDate}\n handleDateChange={handleDateChange}\n handleDurationChange={handleDurationChange}\n />\n </FlexView>\n }\n footerElement={\n <FlexView $flexDirection=\"row\" $flexGap={12} $alignItems=\"center\">\n {flow !== 'EDIT' && (\n <Styled.ButtonWrapper $borderRadius={50}>\n <IconButton\n renderAs=\"secondary\"\n analyticsLabel=\"Save as draft\"\n Icon={DraftIcon}\n disabled={!milestoneEndDate || isProcessing}\n onClick={handleOnSaveAsDraft}\n />\n </Styled.ButtonWrapper>\n )}\n\n <Styled.ButtonWrapper>\n <Button\n renderAs=\"primary\"\n size=\"small\"\n shape=\"square\"\n widthX={9}\n label={buttonLabel}\n disabled={!milestoneEndDate || isProcessing}\n onClick={handleNext}\n />\n </Styled.ButtonWrapper>\n </FlexView>\n }\n />\n );\n});\n\nexport default GoalCompletionDateSelector;\n"],"names":["GoalCompletionDateSelector","memo","formData","config","studentId","milestoneId","currentStep","onFormDataChange","onPreSubmit","courseStream","errorMessage","setErrorMessage","useState","proceedingWithChanges","setProceedingWithChanges","flow","useMilestoneContext","createMessageTemplate","updateMessageTemplate","handleGoalCreationSubmission","useCallback","isGoalCreation","submitBaseMessage","isProcessing","onSubmit","useSubmitGoalCreation","testType","milestoneEndDate","committed","committedMilestoneEndDate","title","buttonLabel","newDate","tomorrowsDate","format","oneYearFutureDate","ONE_YEAR_TIMESTAMP_IN_MILLISECONDS","durationOptions","useMemo","today","startDay","lastDayOfMonth","addDays","eachMonthOfInterval","addMonths","date","lastDay","handleDurationChange","handleDateChange","event","value","handleNext","isDraft","handleOnSaveAsDraft","useEffect","jsx","BodyLayout","FlexView","Text","GoalCompletionDateSelectorView","Styled.ButtonWrapper","IconButton","DraftIcon","Button"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"goal-completion-date-selector.js","sources":["../../../../../../src/features/milestone/create/comps/goal-completion-date-selector/goal-completion-date-selector.tsx"],"sourcesContent":["import { addDays, addMonths, eachMonthOfInterval, format, lastDayOfMonth } from 'date-fns';\nimport { memo, useCallback, useEffect, useMemo, useState, type FC } from 'react';\n\nimport DraftIcon from '../../../../../assets/line-icons/icons/draft';\nimport Button from '../../../../ui/buttons/button/button';\nimport IconButton from '../../../../ui/buttons/icon-button/icon-button';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport { ONE_YEAR_TIMESTAMP_IN_MILLISECONDS } from '../../../constants';\nimport useSubmitGoalCreation from '../../../hooks/use-submit-goal-creation';\nimport { useMilestoneContext } from '../../milestone-create-context';\nimport type { IFormStepProps } from '../../milestone-create-types';\nimport BodyLayout from '../body-layout/body-layout';\nimport * as Styled from './goal-completion-date-selector-styled';\nimport GoalCompletionDateSelectorView from './goal-completion-date-selector-view';\n\nconst GoalCompletionDateSelector: FC<IFormStepProps> = memo(function GoalCompletionDateSelector({\n formData,\n config,\n studentId,\n milestoneId = '',\n currentStep,\n onFormDataChange,\n onPreSubmit,\n courseStream,\n useAbsoluteFooter,\n userType,\n disablePublish,\n}) {\n const [errorMessage, setErrorMessage] = useState('');\n const [proceedingWithChanges, setProceedingWithChanges] = useState(false);\n\n const { flow } = useMilestoneContext();\n\n const {\n share_message: {\n default: {\n create_message_template: createMessageTemplate,\n update_message_template: updateMessageTemplate,\n },\n },\n } = config;\n\n const handleGoalCreationSubmission = useCallback(\n (isGoalCreation?: boolean) => {\n if (flow) {\n const submitBaseMessage = flow === 'EDIT' ? updateMessageTemplate : createMessageTemplate;\n\n onPreSubmit?.({\n isDraftPlan: !isGoalCreation,\n flow: flow,\n submitBaseMessage,\n });\n }\n },\n [flow, createMessageTemplate, updateMessageTemplate, onPreSubmit],\n );\n\n const { isProcessing, onSubmit } = useSubmitGoalCreation({\n formData,\n studentId,\n onSubmit: handleGoalCreationSubmission,\n setError: setErrorMessage,\n milestoneId,\n flow: flow ?? 'CREATE',\n courseStream,\n });\n\n const { testType, milestoneEndDate, committed } = formData;\n const { milestoneEndDate: committedMilestoneEndDate } = committed;\n const { title } = currentStep;\n const buttonLabel = flow === 'EDIT' ? 'Update goal' : 'Create goal';\n\n const newDate = new Date();\n const tomorrowsDate = format(newDate.setDate(newDate.getDate() + 1), 'yyyy-MM-dd');\n\n const oneYearFutureDate = format(Date.now() + ONE_YEAR_TIMESTAMP_IN_MILLISECONDS, 'yyyy-MM-dd');\n\n const durationOptions = useMemo(() => {\n const today = new Date();\n const startDay = lastDayOfMonth(today) ? addDays(today, 1) : today;\n const months = eachMonthOfInterval({\n start: startDay,\n end: addMonths(startDay, 11),\n });\n\n return months.map(date => {\n const lastDay = lastDayOfMonth(date);\n\n return {\n id: format(lastDay, 'yyyy-MM-dd'),\n label: format(date, 'MMMM yyyy'),\n value: lastDay,\n };\n });\n }, []);\n\n const handleDurationChange = useCallback(\n (date: string) => {\n onFormDataChange({\n milestoneEndDate: date,\n milestoneEndDateIsTentative: true,\n });\n },\n [onFormDataChange],\n );\n\n const handleDateChange = useCallback<\n NonNullable<React.InputHTMLAttributes<HTMLInputElement>['onChange']>\n >(\n event => {\n const value = event.target.value;\n\n if (!value) return;\n\n if (errorMessage && value >= tomorrowsDate && value < oneYearFutureDate) {\n setErrorMessage('');\n\n return;\n }\n\n onFormDataChange({\n milestoneEndDate: value,\n milestoneEndDateIsTentative: true,\n });\n },\n [tomorrowsDate, errorMessage, onFormDataChange, oneYearFutureDate],\n );\n\n const handleNext = useCallback(\n (isDraft?: boolean) => {\n if (\n milestoneEndDate &&\n (milestoneEndDate < tomorrowsDate || milestoneEndDate > oneYearFutureDate)\n ) {\n if (milestoneEndDate < tomorrowsDate) {\n setErrorMessage('Please enter a future date');\n } else {\n setErrorMessage('Please select a date within the next year');\n }\n } else if (isDraft) {\n onSubmit(true);\n } else {\n onFormDataChange({\n milestoneEndDate,\n committed: {\n milestoneEndDate: true,\n milestoneEndDateIsTentative: true,\n },\n });\n setProceedingWithChanges(true);\n }\n },\n [milestoneEndDate, tomorrowsDate, oneYearFutureDate, onFormDataChange, onSubmit],\n );\n\n const handleOnSaveAsDraft = useCallback(() => {\n handleNext(true);\n }, [handleNext]);\n\n useEffect(() => {\n if (committedMilestoneEndDate && proceedingWithChanges) {\n handleGoalCreationSubmission(true);\n }\n }, [committedMilestoneEndDate, proceedingWithChanges, handleGoalCreationSubmission]);\n\n return (\n <BodyLayout\n useAbsoluteFooter={useAbsoluteFooter}\n headerElement={\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $flexGapX={1}>\n <Text $renderAs=\"ab2\">{title}</Text>\n </FlexView>\n }\n bodyHeight=\"100%\"\n bodyElement={\n <FlexView $width=\"100%\" $height=\"100%\" $alignItems=\"center\" $justifyContent=\"center\">\n <GoalCompletionDateSelectorView\n testType={testType}\n tomorrowsDate={tomorrowsDate}\n oneYearFutureDate={oneYearFutureDate}\n errorMessage={errorMessage}\n durationOptions={durationOptions}\n milestoneEndDate={milestoneEndDate}\n handleDateChange={handleDateChange}\n handleDurationChange={handleDurationChange}\n />\n </FlexView>\n }\n footerElement={\n userType === 'STUDENT' ? undefined : (\n <FlexView $flexDirection=\"row\" $flexGap={12} $alignItems=\"center\">\n {flow !== 'EDIT' && (\n <Styled.ButtonWrapper $borderRadius={50}>\n <IconButton\n renderAs=\"secondary\"\n analyticsLabel=\"Save as draft\"\n Icon={DraftIcon}\n disabled={!milestoneEndDate || isProcessing}\n onClick={handleOnSaveAsDraft}\n />\n </Styled.ButtonWrapper>\n )}\n\n <Styled.ButtonWrapper>\n <Button\n renderAs=\"primary\"\n size=\"small\"\n shape=\"square\"\n widthX={9}\n label={buttonLabel}\n disabled={!milestoneEndDate || isProcessing || !!disablePublish}\n onClick={handleNext}\n />\n </Styled.ButtonWrapper>\n </FlexView>\n )\n }\n />\n );\n});\n\nexport default GoalCompletionDateSelector;\n"],"names":["GoalCompletionDateSelector","memo","formData","config","studentId","milestoneId","currentStep","onFormDataChange","onPreSubmit","courseStream","useAbsoluteFooter","userType","disablePublish","errorMessage","setErrorMessage","useState","proceedingWithChanges","setProceedingWithChanges","flow","useMilestoneContext","createMessageTemplate","updateMessageTemplate","handleGoalCreationSubmission","useCallback","isGoalCreation","submitBaseMessage","isProcessing","onSubmit","useSubmitGoalCreation","testType","milestoneEndDate","committed","committedMilestoneEndDate","title","buttonLabel","newDate","tomorrowsDate","format","oneYearFutureDate","ONE_YEAR_TIMESTAMP_IN_MILLISECONDS","durationOptions","useMemo","today","startDay","lastDayOfMonth","addDays","eachMonthOfInterval","addMonths","date","lastDay","handleDurationChange","handleDateChange","event","value","handleNext","isDraft","handleOnSaveAsDraft","useEffect","jsx","BodyLayout","FlexView","Text","GoalCompletionDateSelectorView","jsxs","Styled.ButtonWrapper","IconButton","DraftIcon","Button"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import r from "styled-components";
|
|
2
2
|
import n from "../../ui/layout/flex-view.js";
|
|
3
|
-
const
|
|
3
|
+
const l = r.div(
|
|
4
4
|
({ $height: o, $viewMode: e, $minHeight: t }) => `
|
|
5
5
|
display: flex;
|
|
6
6
|
flex-direction: column;
|
|
@@ -16,7 +16,7 @@ const d = r.div(
|
|
|
16
16
|
}
|
|
17
17
|
` : ""}
|
|
18
18
|
`
|
|
19
|
-
),
|
|
19
|
+
), d = r.div(
|
|
20
20
|
({ theme: o, $viewMode: e }) => `
|
|
21
21
|
position: relative;
|
|
22
22
|
display: flex;
|
|
@@ -41,9 +41,11 @@ const d = r.div(
|
|
|
41
41
|
border-bottom: 1px solid ${o.colors.WHITE_5};
|
|
42
42
|
border-top-left-radius: ${o.layout.gutter * 0.75}px;
|
|
43
43
|
border-top-right-radius: ${o.layout.gutter * 0.75}px;
|
|
44
|
-
`), x = r(n)((
|
|
44
|
+
`), x = r(n)(({
|
|
45
|
+
$useAbsoluteFooter: o
|
|
46
|
+
}) => `
|
|
45
47
|
align-self: flex-end;
|
|
46
|
-
position: fixed;
|
|
48
|
+
position: ${o ? "absolute" : "fixed"};
|
|
47
49
|
bottom: 0px;
|
|
48
50
|
right: 24px;
|
|
49
51
|
`), c = r.img(({ theme: o, $backgroundColor: e }) => {
|
|
@@ -69,19 +71,19 @@ const d = r.div(
|
|
|
69
71
|
opacity: 0.85;
|
|
70
72
|
` : ""}
|
|
71
73
|
`;
|
|
72
|
-
}),
|
|
74
|
+
}), $ = r.div`
|
|
73
75
|
position: absolute;
|
|
74
76
|
left: 50%;
|
|
75
77
|
transform: translateX(-50%);
|
|
76
78
|
`;
|
|
77
79
|
export {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
+
d as BodyContainer,
|
|
81
|
+
l as Container,
|
|
80
82
|
a as ContentContainer,
|
|
81
83
|
x as FooterWrapper,
|
|
82
84
|
u as HeaderContainer,
|
|
83
85
|
f as HeaderWrapper,
|
|
84
86
|
c as RadioCardIcon,
|
|
85
|
-
|
|
87
|
+
$ as StepperWrapper
|
|
86
88
|
};
|
|
87
89
|
//# sourceMappingURL=milestone-create-styled.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"milestone-create-styled.js","sources":["../../../../src/features/milestone/create/milestone-create-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../ui/layout/flex-view';\nimport type { TColorNames } from '../../ui/types';\n\ninterface ContainerProps {\n $height?: string | number;\n $minHeight?: string;\n $viewMode: boolean;\n}\n\nconst Container = styled.div<ContainerProps>(\n ({ $height, $viewMode, $minHeight }) => `\n display: flex;\n flex-direction: column;\n height: ${$height ? (typeof $height === 'number' ? `${$height}px` : `${$height}`) : 'auto'};\n min-height: ${$minHeight ? $minHeight : 'auto'};\n ${\n $viewMode\n ? `\n cursor: not-allowed;\n border: 2px solid black;\n border-radius: 8px;\n transform: scale3d(.9943, .9900, 1);\n & ${ContentContainer} {\n pointer-events: auto;\n }\n `\n : ``\n }\n`,\n);\n\nconst BodyContainer = styled.div<{ $viewMode?: boolean }>(\n ({ theme, $viewMode }) => `\n position: relative;\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n margin-bottom: ${theme.layout.gutter * 0.5}px;\n border-radius: ${theme.layout.gutter * 0.75}px;\n ${\n $viewMode\n ? `\n pointer-events: none;\n // opacity: 0.85;\n `\n : ``\n }\n`,\n);\n\ninterface IContentContainer {\n $overflowHidden?: boolean;\n}\n\nconst ContentContainer = styled.div<IContentContainer>(({ $overflowHidden }) => {\n return `\n flex-grow: 1;\n overflow-y: auto;\n\n ${$overflowHidden && 'overflow: hidden'};\n `;\n});\n\nconst HeaderContainer = styled(FlexView)(({ theme }) => {\n return `\n position: sticky;\n top: 0;\n z-index: 2;\n border-bottom: 1px solid ${theme.colors.WHITE_5};\n border-top-left-radius: ${theme.layout.gutter * 0.75}px;\n border-top-right-radius: ${theme.layout.gutter * 0.75}px;\n `;\n});\n\nconst FooterWrapper = styled(FlexView)(() => {\n return `\n align-self: flex-end;\n position: fixed;\n bottom: 0px;\n right: 24px;\n `;\n});\n\ninterface IRadioCardIconProps {\n $backgroundColor: TColorNames;\n}\n\nconst RadioCardIcon = styled.img<IRadioCardIconProps>(({ theme, $backgroundColor }) => {\n const {\n layout: { gutter },\n colors,\n } = theme;\n\n return `\n width: ${gutter * 6}px;\n height: ${gutter * 6}px;\n background: ${colors[$backgroundColor]};\n border-radius: ${gutter * 0.5}px;\n `;\n});\n\nconst HeaderWrapper = styled(FlexView)<{ $viewMode?: boolean }>(({ theme, $viewMode }) => {\n const {\n layout: { gutter },\n } = theme;\n\n return `\n position:relative;\n min-height:${gutter * 2.75}px;\n ${\n $viewMode\n ? `\n pointer-events: none;\n opacity: 0.85;\n `\n : ``\n }\n`;\n});\n\nconst StepperWrapper = styled.div`\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n`;\n\nexport {\n Container,\n BodyContainer,\n ContentContainer,\n HeaderContainer,\n FooterWrapper,\n RadioCardIcon,\n StepperWrapper,\n HeaderWrapper,\n};\n"],"names":["Container","styled","$height","$viewMode","$minHeight","ContentContainer","BodyContainer","theme","$overflowHidden","HeaderContainer","FlexView","FooterWrapper","RadioCardIcon","$backgroundColor","gutter","colors","HeaderWrapper","StepperWrapper"],"mappings":";;AAWA,MAAMA,IAAYC,EAAO;AAAA,EACvB,CAAC,EAAE,SAAAC,GAAS,WAAAC,GAAW,YAAAC,EAAiB,MAAA;AAAA;AAAA;AAAA,YAG9BF,IAAW,OAAOA,KAAY,WAAW,GAAGA,CAAO,OAAO,GAAGA,CAAO,KAAM,MAAM;AAAA,gBAC5EE,KAA0B,MAAM;AAAA,IAE5CD,IACI;AAAA;AAAA;AAAA;AAAA;AAAA,YAKIE,CAAgB;AAAA;AAAA;AAAA,UAIpB,EACN;AAAA;AAEF,GAEMC,IAAgBL,EAAO;AAAA,EAC3B,CAAC,EAAE,OAAAM,GAAO,WAAAJ,EAAA,MAAgB;AAAA;AAAA;AAAA;AAAA;AAAA,mBAKTI,EAAM,OAAO,SAAS,GAAG;AAAA,mBACzBA,EAAM,OAAO,SAAS,IAAI;AAAA,IAEzCJ,IACI;AAAA;AAAA;AAAA,UAIA,EACN;AAAA;AAEF,GAMME,IAAmBJ,EAAO,IAAuB,CAAC,EAAE,iBAAAO,QACjD;AAAA;AAAA;AAAA;AAAA,MAIHA,KAAmB,kBAAkB;AAAA,GAE1C,GAEKC,IAAkBR,EAAOS,CAAQ,EAAE,CAAC,EAAE,OAAAH,QACnC;AAAA;AAAA;AAAA;AAAA,+BAIsBA,EAAM,OAAO,OAAO;AAAA,8BACrBA,EAAM,OAAO,SAAS,IAAI;AAAA,+BACzBA,EAAM,OAAO,SAAS,IAAI;AAAA,GAExD,GAEKI,IAAgBV,EAAOS,CAAQ,
|
|
1
|
+
{"version":3,"file":"milestone-create-styled.js","sources":["../../../../src/features/milestone/create/milestone-create-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../ui/layout/flex-view';\nimport type { TColorNames } from '../../ui/types';\n\ninterface ContainerProps {\n $height?: string | number;\n $minHeight?: string;\n $viewMode: boolean;\n}\n\nconst Container = styled.div<ContainerProps>(\n ({ $height, $viewMode, $minHeight }) => `\n display: flex;\n flex-direction: column;\n height: ${$height ? (typeof $height === 'number' ? `${$height}px` : `${$height}`) : 'auto'};\n min-height: ${$minHeight ? $minHeight : 'auto'};\n ${\n $viewMode\n ? `\n cursor: not-allowed;\n border: 2px solid black;\n border-radius: 8px;\n transform: scale3d(.9943, .9900, 1);\n & ${ContentContainer} {\n pointer-events: auto;\n }\n `\n : ``\n }\n`,\n);\n\nconst BodyContainer = styled.div<{ $viewMode?: boolean }>(\n ({ theme, $viewMode }) => `\n position: relative;\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n margin-bottom: ${theme.layout.gutter * 0.5}px;\n border-radius: ${theme.layout.gutter * 0.75}px;\n ${\n $viewMode\n ? `\n pointer-events: none;\n // opacity: 0.85;\n `\n : ``\n }\n`,\n);\n\ninterface IContentContainer {\n $overflowHidden?: boolean;\n}\n\nconst ContentContainer = styled.div<IContentContainer>(({ $overflowHidden }) => {\n return `\n flex-grow: 1;\n overflow-y: auto;\n\n ${$overflowHidden && 'overflow: hidden'};\n `;\n});\n\nconst HeaderContainer = styled(FlexView)(({ theme }) => {\n return `\n position: sticky;\n top: 0;\n z-index: 2;\n border-bottom: 1px solid ${theme.colors.WHITE_5};\n border-top-left-radius: ${theme.layout.gutter * 0.75}px;\n border-top-right-radius: ${theme.layout.gutter * 0.75}px;\n `;\n});\n\nconst FooterWrapper = styled(FlexView)<{ $useAbsoluteFooter?: boolean }>(({\n $useAbsoluteFooter,\n}) => {\n return `\n align-self: flex-end;\n position: ${$useAbsoluteFooter ? 'absolute' : 'fixed'};\n bottom: 0px;\n right: 24px;\n `;\n});\n\ninterface IRadioCardIconProps {\n $backgroundColor: TColorNames;\n}\n\nconst RadioCardIcon = styled.img<IRadioCardIconProps>(({ theme, $backgroundColor }) => {\n const {\n layout: { gutter },\n colors,\n } = theme;\n\n return `\n width: ${gutter * 6}px;\n height: ${gutter * 6}px;\n background: ${colors[$backgroundColor]};\n border-radius: ${gutter * 0.5}px;\n `;\n});\n\nconst HeaderWrapper = styled(FlexView)<{ $viewMode?: boolean }>(({ theme, $viewMode }) => {\n const {\n layout: { gutter },\n } = theme;\n\n return `\n position:relative;\n min-height:${gutter * 2.75}px;\n ${\n $viewMode\n ? `\n pointer-events: none;\n opacity: 0.85;\n `\n : ``\n }\n`;\n});\n\nconst StepperWrapper = styled.div`\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n`;\n\nexport {\n Container,\n BodyContainer,\n ContentContainer,\n HeaderContainer,\n FooterWrapper,\n RadioCardIcon,\n StepperWrapper,\n HeaderWrapper,\n};\n"],"names":["Container","styled","$height","$viewMode","$minHeight","ContentContainer","BodyContainer","theme","$overflowHidden","HeaderContainer","FlexView","FooterWrapper","$useAbsoluteFooter","RadioCardIcon","$backgroundColor","gutter","colors","HeaderWrapper","StepperWrapper"],"mappings":";;AAWA,MAAMA,IAAYC,EAAO;AAAA,EACvB,CAAC,EAAE,SAAAC,GAAS,WAAAC,GAAW,YAAAC,EAAiB,MAAA;AAAA;AAAA;AAAA,YAG9BF,IAAW,OAAOA,KAAY,WAAW,GAAGA,CAAO,OAAO,GAAGA,CAAO,KAAM,MAAM;AAAA,gBAC5EE,KAA0B,MAAM;AAAA,IAE5CD,IACI;AAAA;AAAA;AAAA;AAAA;AAAA,YAKIE,CAAgB;AAAA;AAAA;AAAA,UAIpB,EACN;AAAA;AAEF,GAEMC,IAAgBL,EAAO;AAAA,EAC3B,CAAC,EAAE,OAAAM,GAAO,WAAAJ,EAAA,MAAgB;AAAA;AAAA;AAAA;AAAA;AAAA,mBAKTI,EAAM,OAAO,SAAS,GAAG;AAAA,mBACzBA,EAAM,OAAO,SAAS,IAAI;AAAA,IAEzCJ,IACI;AAAA;AAAA;AAAA,UAIA,EACN;AAAA;AAEF,GAMME,IAAmBJ,EAAO,IAAuB,CAAC,EAAE,iBAAAO,QACjD;AAAA;AAAA;AAAA;AAAA,MAIHA,KAAmB,kBAAkB;AAAA,GAE1C,GAEKC,IAAkBR,EAAOS,CAAQ,EAAE,CAAC,EAAE,OAAAH,QACnC;AAAA;AAAA;AAAA;AAAA,+BAIsBA,EAAM,OAAO,OAAO;AAAA,8BACrBA,EAAM,OAAO,SAAS,IAAI;AAAA,+BACzBA,EAAM,OAAO,SAAS,IAAI;AAAA,GAExD,GAEKI,IAAgBV,EAAOS,CAAQ,EAAoC,CAAC;AAAA,EACxE,oBAAAE;AACF,MACS;AAAA;AAAA,kBAESA,IAAqB,aAAa,OAAO;AAAA;AAAA;AAAA,KAI1D,GAMKC,IAAgBZ,EAAO,IAAyB,CAAC,EAAE,OAAAM,GAAO,kBAAAO,QAAuB;AAC/E,QAAA;AAAA,IACJ,QAAQ,EAAE,QAAAC,EAAO;AAAA,IACjB,QAAAC;AAAA,EACE,IAAAT;AAEG,SAAA;AAAA,aACIQ,IAAS,CAAC;AAAA,cACTA,IAAS,CAAC;AAAA,kBACNC,EAAOF,CAAgB,CAAC;AAAA,qBACrBC,IAAS,GAAG;AAAA;AAEjC,CAAC,GAEKE,IAAgBhB,EAAOS,CAAQ,EAA2B,CAAC,EAAE,OAAAH,GAAO,WAAAJ,QAAgB;AAClF,QAAA;AAAA,IACJ,QAAQ,EAAE,QAAAY,EAAO;AAAA,EACf,IAAAR;AAEG,SAAA;AAAA;AAAA,iBAEQQ,IAAS,IAAI;AAAA,MAExBZ,IACI;AAAA;AAAA;AAAA,YAIA,EACN;AAAA;AAEJ,CAAC,GAEKe,IAAiBjB,EAAO;AAAA;AAAA;AAAA;AAAA;"}
|
|
@@ -1,80 +1,84 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { memo as
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import { useFormDataPrefiller as
|
|
1
|
+
import { jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { memo as I, useMemo as J, useEffect as K } from "react";
|
|
3
|
+
import L from "./milestone-create-components-map.js";
|
|
4
|
+
import N from "./milestone-create-context.js";
|
|
5
|
+
import { useFormDataPrefiller as O, useMilestoneFormTree as Q, useFormTreeTraversal as U } from "./milestone-create-hooks.js";
|
|
6
6
|
import { Container as W, BodyContainer as X } from "./milestone-create-styled.js";
|
|
7
|
-
const
|
|
8
|
-
studentName:
|
|
7
|
+
const oe = I(function({
|
|
8
|
+
studentName: M,
|
|
9
9
|
studentId: l,
|
|
10
10
|
height: x,
|
|
11
|
-
minHeight:
|
|
12
|
-
formData:
|
|
11
|
+
minHeight: S,
|
|
12
|
+
formData: s,
|
|
13
13
|
config: a,
|
|
14
|
-
onChapterExitWarning:
|
|
14
|
+
onChapterExitWarning: h,
|
|
15
15
|
onFormDataChange: e,
|
|
16
|
-
onPreSubmit:
|
|
17
|
-
onExit:
|
|
16
|
+
onPreSubmit: C,
|
|
17
|
+
onExit: $,
|
|
18
18
|
board: F,
|
|
19
19
|
schoolData: P,
|
|
20
20
|
grade: T,
|
|
21
21
|
flow: t,
|
|
22
|
-
milestoneId:
|
|
22
|
+
milestoneId: b,
|
|
23
23
|
currentCountryCode: B,
|
|
24
|
-
isGoalCreation:
|
|
25
|
-
courseStream:
|
|
26
|
-
classRatio:
|
|
27
|
-
enrollmentType:
|
|
28
|
-
canDeleteGoal:
|
|
29
|
-
isTeacherTrainingAccount:
|
|
30
|
-
onDeleteGoal:
|
|
24
|
+
isGoalCreation: c,
|
|
25
|
+
courseStream: D,
|
|
26
|
+
classRatio: E,
|
|
27
|
+
enrollmentType: d,
|
|
28
|
+
canDeleteGoal: V,
|
|
29
|
+
isTeacherTrainingAccount: j,
|
|
30
|
+
onDeleteGoal: k,
|
|
31
|
+
userType: w,
|
|
32
|
+
useAbsoluteFooter: H,
|
|
33
|
+
disablePublish: R
|
|
31
34
|
}) {
|
|
32
|
-
const { formDataState:
|
|
35
|
+
const { formDataState: i, setFormData: q } = O(s, {
|
|
33
36
|
schoolData: P,
|
|
34
37
|
board: F,
|
|
35
38
|
grade: T,
|
|
36
39
|
config: a,
|
|
37
40
|
flow: t,
|
|
38
41
|
currentCountryCode: B
|
|
39
|
-
}),
|
|
42
|
+
}), y = Q({
|
|
40
43
|
flow: t,
|
|
41
|
-
formDataState:
|
|
42
|
-
isGoalCreation:
|
|
43
|
-
}), o = e ?
|
|
44
|
+
formDataState: i,
|
|
45
|
+
isGoalCreation: c
|
|
46
|
+
}), o = e ? i : s, n = e ? "edit" : "view", u = n === "view", { currentStep: m, updateFormData: z, handleBack: p } = U({
|
|
44
47
|
flow: t,
|
|
45
|
-
updatedFormTree:
|
|
48
|
+
updatedFormTree: y,
|
|
46
49
|
formData: o,
|
|
47
|
-
formDataState:
|
|
48
|
-
setFormData:
|
|
49
|
-
handleExit:
|
|
50
|
-
}), { name:
|
|
51
|
-
|
|
52
|
-
}, [r]);
|
|
53
|
-
return J(() => {
|
|
50
|
+
formDataState: i,
|
|
51
|
+
setFormData: q,
|
|
52
|
+
handleExit: $
|
|
53
|
+
}), { name: f } = m || {}, v = f ? L[f] : void 0, A = J(() => ({ handleBack: p, mode: n, flow: t }), [p, n, t]);
|
|
54
|
+
return K(() => {
|
|
54
55
|
e && e(o);
|
|
55
|
-
}, [o, e]), /* @__PURE__ */
|
|
56
|
-
|
|
56
|
+
}, [o, e]), /* @__PURE__ */ r(N.Provider, { value: A, children: /* @__PURE__ */ r(W, { $height: x, $minHeight: S, $viewMode: u, children: /* @__PURE__ */ r(X, { $viewMode: u, children: v && m && d ? /* @__PURE__ */ r(
|
|
57
|
+
v,
|
|
57
58
|
{
|
|
58
|
-
studentName:
|
|
59
|
-
currentStep:
|
|
60
|
-
isGoalCreation:
|
|
59
|
+
studentName: M,
|
|
60
|
+
currentStep: m,
|
|
61
|
+
isGoalCreation: c,
|
|
61
62
|
config: a,
|
|
62
63
|
formData: o,
|
|
63
|
-
onFormDataChange:
|
|
64
|
-
onChapterExitWarning:
|
|
64
|
+
onFormDataChange: z,
|
|
65
|
+
onChapterExitWarning: h,
|
|
65
66
|
studentId: l,
|
|
66
|
-
onPreSubmit:
|
|
67
|
-
milestoneId:
|
|
68
|
-
courseStream:
|
|
69
|
-
classRatio:
|
|
70
|
-
enrollmentType:
|
|
71
|
-
isTeacherTrainingAccount:
|
|
72
|
-
canDeleteGoal:
|
|
73
|
-
onDeleteGoal:
|
|
67
|
+
onPreSubmit: C,
|
|
68
|
+
milestoneId: b,
|
|
69
|
+
courseStream: D,
|
|
70
|
+
classRatio: E || 0,
|
|
71
|
+
enrollmentType: d,
|
|
72
|
+
isTeacherTrainingAccount: j,
|
|
73
|
+
canDeleteGoal: V,
|
|
74
|
+
onDeleteGoal: k,
|
|
75
|
+
userType: w,
|
|
76
|
+
useAbsoluteFooter: H,
|
|
77
|
+
disablePublish: R
|
|
74
78
|
}
|
|
75
79
|
) : void 0 }) }) });
|
|
76
80
|
});
|
|
77
81
|
export {
|
|
78
|
-
|
|
82
|
+
oe as default
|
|
79
83
|
};
|
|
80
84
|
//# sourceMappingURL=milestone-create.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"milestone-create.js","sources":["../../../../src/features/milestone/create/milestone-create.tsx"],"sourcesContent":["import { memo,
|
|
1
|
+
{"version":3,"file":"milestone-create.js","sources":["../../../../src/features/milestone/create/milestone-create.tsx"],"sourcesContent":["import { memo, useEffect, useMemo, type FC } from 'react';\n\nimport ComponentsMap from './milestone-create-components-map';\nimport MilestoneCreateContext, { type MileStoneJourneyMode } from './milestone-create-context';\nimport {\n useFormDataPrefiller,\n useFormTreeTraversal,\n useMilestoneFormTree,\n} from './milestone-create-hooks';\nimport { BodyContainer, Container } from './milestone-create-styled';\nimport type { IMileStoneCreateProps, IMilestoneFormData } from './milestone-create-types';\n\nconst MilestoneCreate: FC<IMileStoneCreateProps> = memo(function MilestoneCreate({\n studentName,\n studentId,\n height,\n minHeight,\n formData: formDataProp,\n config,\n onChapterExitWarning,\n onFormDataChange,\n onPreSubmit: handlePreSubmit,\n onExit: handleExit,\n board,\n schoolData,\n grade,\n flow,\n milestoneId,\n currentCountryCode,\n isGoalCreation,\n courseStream,\n classRatio,\n enrollmentType,\n canDeleteGoal,\n isTeacherTrainingAccount,\n onDeleteGoal,\n userType,\n useAbsoluteFooter,\n disablePublish,\n}) {\n const { formDataState, setFormData } = useFormDataPrefiller(formDataProp, {\n schoolData,\n board,\n grade,\n config,\n flow,\n currentCountryCode,\n });\n\n const updatedFormTree = useMilestoneFormTree({\n flow,\n formDataState,\n isGoalCreation,\n });\n\n const formData = (onFormDataChange ? formDataState : formDataProp) as IMilestoneFormData; //TODO: make better\n\n const mode: MileStoneJourneyMode = onFormDataChange ? 'edit' : 'view';\n const isViewMode = mode === 'view';\n\n const { currentStep, updateFormData, handleBack } = useFormTreeTraversal({\n flow,\n updatedFormTree,\n formData,\n formDataState,\n setFormData,\n handleExit,\n });\n\n const { name } = currentStep || {};\n const StepComponent = name ? ComponentsMap[name] : undefined;\n\n const contextValue = useMemo(() => ({ handleBack, mode, flow }), [handleBack, mode, flow]);\n\n useEffect(() => {\n if (onFormDataChange) {\n onFormDataChange(formData);\n }\n }, [formData, onFormDataChange]);\n\n return (\n <MilestoneCreateContext.Provider value={contextValue}>\n <Container $height={height} $minHeight={minHeight} $viewMode={isViewMode}>\n <BodyContainer $viewMode={isViewMode}>\n {StepComponent && currentStep && enrollmentType ? (\n <StepComponent\n studentName={studentName}\n currentStep={currentStep}\n isGoalCreation={isGoalCreation}\n config={config}\n formData={formData}\n onFormDataChange={updateFormData}\n onChapterExitWarning={onChapterExitWarning}\n studentId={studentId}\n onPreSubmit={handlePreSubmit}\n milestoneId={milestoneId}\n courseStream={courseStream}\n classRatio={classRatio || 0}\n enrollmentType={enrollmentType}\n isTeacherTrainingAccount={isTeacherTrainingAccount}\n canDeleteGoal={canDeleteGoal}\n onDeleteGoal={onDeleteGoal}\n userType={userType}\n useAbsoluteFooter={useAbsoluteFooter}\n disablePublish={disablePublish}\n />\n ) : undefined}\n </BodyContainer>\n </Container>\n </MilestoneCreateContext.Provider>\n );\n});\n\nexport default MilestoneCreate;\n"],"names":["MilestoneCreate","memo","studentName","studentId","height","minHeight","formDataProp","config","onChapterExitWarning","onFormDataChange","handlePreSubmit","handleExit","board","schoolData","grade","flow","milestoneId","currentCountryCode","isGoalCreation","courseStream","classRatio","enrollmentType","canDeleteGoal","isTeacherTrainingAccount","onDeleteGoal","userType","useAbsoluteFooter","disablePublish","formDataState","setFormData","useFormDataPrefiller","updatedFormTree","useMilestoneFormTree","formData","mode","isViewMode","currentStep","updateFormData","handleBack","useFormTreeTraversal","name","StepComponent","ComponentsMap","contextValue","useMemo","useEffect","jsx","MilestoneCreateContext","Container","BodyContainer"],"mappings":";;;;;;AAYM,MAAAA,KAA6CC,EAAK,SAAyB;AAAA,EAC/E,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,QAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAUC;AAAA,EACV,QAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,aAAaC;AAAA,EACb,QAAQC;AAAA,EACR,OAAAC;AAAA,EACA,YAAAC;AAAA,EACA,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,aAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,YAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,0BAAAC;AAAA,EACA,cAAAC;AAAA,EACA,UAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,gBAAAC;AACF,GAAG;AACD,QAAM,EAAE,eAAAC,GAAe,aAAAC,MAAgBC,EAAqBxB,GAAc;AAAA,IACxE,YAAAO;AAAA,IACA,OAAAD;AAAA,IACA,OAAAE;AAAA,IACA,QAAAP;AAAA,IACA,MAAAQ;AAAA,IACA,oBAAAE;AAAA,EAAA,CACD,GAEKc,IAAkBC,EAAqB;AAAA,IAC3C,MAAAjB;AAAA,IACA,eAAAa;AAAA,IACA,gBAAAV;AAAA,EAAA,CACD,GAEKe,IAAYxB,IAAmBmB,IAAgBtB,GAE/C4B,IAA6BzB,IAAmB,SAAS,QACzD0B,IAAaD,MAAS,QAEtB,EAAE,aAAAE,GAAa,gBAAAC,GAAgB,YAAAC,EAAA,IAAeC,EAAqB;AAAA,IACvE,MAAAxB;AAAA,IACA,iBAAAgB;AAAA,IACA,UAAAE;AAAA,IACA,eAAAL;AAAA,IACA,aAAAC;AAAA,IACA,YAAAlB;AAAA,EAAA,CACD,GAEK,EAAE,MAAA6B,EAAA,IAASJ,KAAe,IAC1BK,IAAgBD,IAAOE,EAAcF,CAAI,IAAI,QAE7CG,IAAeC,EAAQ,OAAO,EAAE,YAAAN,GAAY,MAAAJ,GAAM,MAAAnB,EAAK,IAAI,CAACuB,GAAYJ,GAAMnB,CAAI,CAAC;AAEzF,SAAA8B,EAAU,MAAM;AACd,IAAIpC,KACFA,EAAiBwB,CAAQ;AAAA,EAC3B,GACC,CAACA,GAAUxB,CAAgB,CAAC,GAG7B,gBAAAqC,EAACC,EAAuB,UAAvB,EAAgC,OAAOJ,GACtC,UAAA,gBAAAG,EAACE,KAAU,SAAS5C,GAAQ,YAAYC,GAAW,WAAW8B,GAC5D,UAAC,gBAAAW,EAAAG,GAAA,EAAc,WAAWd,GACvB,UAAAM,KAAiBL,KAAef,IAC/B,gBAAAyB;AAAA,IAACL;AAAA,IAAA;AAAA,MACC,aAAAvC;AAAA,MACA,aAAAkC;AAAA,MACA,gBAAAlB;AAAA,MACA,QAAAX;AAAA,MACA,UAAA0B;AAAA,MACA,kBAAkBI;AAAA,MAClB,sBAAA7B;AAAA,MACA,WAAAL;AAAA,MACA,aAAaO;AAAA,MACb,aAAAM;AAAA,MACA,cAAAG;AAAA,MACA,YAAYC,KAAc;AAAA,MAC1B,gBAAAC;AAAA,MACA,0BAAAE;AAAA,MACA,eAAAD;AAAA,MACA,cAAAE;AAAA,MACA,UAAAC;AAAA,MACA,mBAAAC;AAAA,MACA,gBAAAC;AAAA,IAAA;AAAA,EACF,IACE,OACN,CAAA,EACF,CAAA,EACF,CAAA;AAEJ,CAAC;"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsx as m } from "react/jsx-runtime";
|
|
2
|
+
import { memo as f, useEffect as i } from "react";
|
|
3
|
+
import { useMilestoneEditSync as d } from "./hooks/use-milestone-edit-sync.js";
|
|
4
|
+
import l from "./goal-drafts/goal-draft-edit-container.js";
|
|
5
|
+
const h = f(function(a) {
|
|
6
|
+
const { channelId: e, userType: t, ...n } = a, o = t === "TEACHER", { syncedFormData: s, setSyncFormData: c, closeChannel: r } = d({
|
|
7
|
+
channelId: e,
|
|
8
|
+
isTeacher: o
|
|
9
|
+
});
|
|
10
|
+
return i(() => () => {
|
|
11
|
+
r();
|
|
12
|
+
}, [r]), /* @__PURE__ */ m(
|
|
13
|
+
l,
|
|
14
|
+
{
|
|
15
|
+
...n,
|
|
16
|
+
userType: t,
|
|
17
|
+
formData: s,
|
|
18
|
+
onFormDataChange: o ? c : void 0
|
|
19
|
+
}
|
|
20
|
+
);
|
|
21
|
+
});
|
|
22
|
+
export {
|
|
23
|
+
h as default
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=goal-draft-edit-sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"goal-draft-edit-sync.js","sources":["../../../../src/features/milestone/edit/goal-draft-edit-sync.tsx"],"sourcesContent":["import { memo, useEffect, type FC } from 'react';\n\nimport type { IMilestoneFormData } from '../create/milestone-create-types';\nimport { useMilestoneEditSync } from './hooks/use-milestone-edit-sync';\nimport GoalDraftEdit from './goal-drafts/goal-draft-edit-container';\nimport type { IGoalDraftEditSync } from './milestone-edit-types';\n\nconst GoalDraftEditSync: FC<IGoalDraftEditSync> = memo(function GoalDraftEditSync(props) {\n const { channelId, userType, ...goalDraftEditProps } = props;\n\n const isTeacher = userType === 'TEACHER';\n\n const { syncedFormData, setSyncFormData, closeChannel } = useMilestoneEditSync({\n channelId,\n isTeacher,\n });\n\n useEffect(() => {\n return () => {\n closeChannel();\n };\n }, [closeChannel]);\n\n return (\n <GoalDraftEdit\n {...goalDraftEditProps}\n userType={userType}\n formData={syncedFormData as IMilestoneFormData}\n onFormDataChange={isTeacher ? setSyncFormData : undefined}\n />\n );\n});\n\nexport default GoalDraftEditSync;\n"],"names":["GoalDraftEditSync","memo","props","channelId","userType","goalDraftEditProps","isTeacher","syncedFormData","setSyncFormData","closeChannel","useMilestoneEditSync","useEffect","jsx","GoalDraftEdit"],"mappings":";;;;AAOA,MAAMA,IAA4CC,EAAK,SAA2BC,GAAO;AACvF,QAAM,EAAE,WAAAC,GAAW,UAAAC,GAAU,GAAGC,MAAuBH,GAEjDI,IAAYF,MAAa,WAEzB,EAAE,gBAAAG,GAAgB,iBAAAC,GAAiB,cAAAC,EAAA,IAAiBC,EAAqB;AAAA,IAC7E,WAAAP;AAAA,IACA,WAAAG;AAAA,EAAA,CACD;AAED,SAAAK,EAAU,MACD,MAAM;AACE,IAAAF;EAAA,GAEd,CAACA,CAAY,CAAC,GAGf,gBAAAG;AAAA,IAACC;AAAA,IAAA;AAAA,MACE,GAAGR;AAAA,MACJ,UAAAD;AAAA,MACA,UAAUG;AAAA,MACV,kBAAkBD,IAAYE,IAAkB;AAAA,IAAA;AAAA,EAAA;AAGtD,CAAC;"}
|