From 799d649e255c0e3510728d4b6014b9c41706fa96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Poul=20Kjeldager=20S=C3=B8rensen?= Date: Tue, 3 Sep 2024 07:59:52 +0200 Subject: [PATCH 1/4] fix: added styles/classes support for ending and submit also. --- .../core/src/components/ending/Ending.tsx | 20 +++++++++------- .../slide-renderer/SlideRenderer.tsx | 1 + .../core/src/components/submit/Submit.tsx | 24 ++++++++++++------- packages/core/src/state/QuickformState.ts | 2 +- 4 files changed, 30 insertions(+), 17 deletions(-) diff --git a/packages/core/src/components/ending/Ending.tsx b/packages/core/src/components/ending/Ending.tsx index 18be207..f0d1dac 100644 --- a/packages/core/src/components/ending/Ending.tsx +++ b/packages/core/src/components/ending/Ending.tsx @@ -5,24 +5,28 @@ import { ErrorIcon, Checkmark } from "../icons/index"; import { useQuickForm } from "../../state/QuickFormContext"; import { EndingModel } from "../../model"; import { quickformtokens } from "../../style/quickFormTokensDefinition"; +import { makeStyles, mergeClasses } from "@griffel/react"; type EndingProps = { model: EndingModel; } - -const endingStyles: React.CSSProperties = { - display: 'flex', - justifyContent: 'center', - flexDirection: 'column' -} + +const useEndingStyles = makeStyles({ + ending: { + display: 'flex', + justifyContent: 'center', + flexDirection: 'column', + width:"100%", + } +}); export const Ending: React.FC = ({ model }) => { const { state } = useQuickForm(); const { text, paragraph } = model; const submitStatus = state.submitStatus; - + const styles = useEndingStyles(); return ( -
+
{submitStatus.isSubmitError && <> diff --git a/packages/core/src/components/renderers/slide-renderer/SlideRenderer.tsx b/packages/core/src/components/renderers/slide-renderer/SlideRenderer.tsx index be77dbd..9a03fa2 100644 --- a/packages/core/src/components/renderers/slide-renderer/SlideRenderer.tsx +++ b/packages/core/src/components/renderers/slide-renderer/SlideRenderer.tsx @@ -8,6 +8,7 @@ import { mergeClasses } from '@griffel/react'; import { IconResolver } from '../../icons/IconResolver'; import { SlideModel } from '../../../model'; + export const SlideRenderer: React.FC = () => { const { state, goToNextSlide } = useQuickForm(); diff --git a/packages/core/src/components/submit/Submit.tsx b/packages/core/src/components/submit/Submit.tsx index 2fbeffd..ba86312 100644 --- a/packages/core/src/components/submit/Submit.tsx +++ b/packages/core/src/components/submit/Submit.tsx @@ -4,20 +4,33 @@ import { useQuickForm } from "../../state/QuickFormContext"; import { Heading, Paragraph, Button, Spinner, Question } from "../index"; import { SubmitActionHandler } from "../../state/action-handlers/SubmitActionHandler"; import { useHandleEnterKeypress } from "../../hooks"; +import { makeStyles, mergeClasses } from "@griffel/react"; type SubmitProps = { model: SubmitModel; } +const useSubmitStyles = makeStyles({ + submit: { + display: 'flex', + flexDirection: 'column', + maxWidth: '72rem', + transition: 'transform 0.3s ease-out', + width: '100%', + } +}); + export const Submit: React.FC = ({ model }) => { const { state, dispatch, onSubmitAsync } = useQuickForm(); const { text, paragraph, buttonText, submitFields = [] } = model; + const styles = useSubmitStyles(); + if (state.submitStatus.isSubmitting) { return } - + const handleSubmit = async () => { dispatch({ type: "SET_SUBMIT_STATUS", status: { ...state.submitStatus, isSubmitting: true } }); @@ -33,7 +46,7 @@ export const Submit: React.FC = ({ model }) => { useHandleEnterKeypress(false, handleSubmit); return ( -
+
{text} @@ -72,9 +85,4 @@ export const Submit: React.FC = ({ model }) => { ) }; -const submitStyling: React.CSSProperties = { - display: 'flex', - flexDirection: 'column', - maxWidth: '72rem', - transition: 'transform 0.3s ease-out', -} \ No newline at end of file + \ No newline at end of file diff --git a/packages/core/src/state/QuickformState.ts b/packages/core/src/state/QuickformState.ts index 619f2d1..31564aa 100644 --- a/packages/core/src/state/QuickformState.ts +++ b/packages/core/src/state/QuickformState.ts @@ -3,7 +3,7 @@ import { SlideModel } from "../model/SlideModel"; import { LayoutDefinition, QuickFormModel } from "../model"; import { IconType } from "../components/icons/IconResolver"; -export type QuickformClassNames = { slide: string, slideIsIn: string, slideIsOut: string }; +export type QuickformClassNames = { slide: string, slideIsIn: string, slideIsOut: string, submit:string, ending:string }; export type QuickformState = { autoAdvanceSlides?: boolean; enableQuestionNumbers?: boolean; From 2c950e0930af3b0063b88dd2524e3b5ca117da63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Poul=20Kjeldager=20S=C3=B8rensen?= Date: Wed, 4 Sep 2024 10:53:37 +0200 Subject: [PATCH 2/4] fix: added option to generate slide with all questions --- .../core/src/components/button/Button.tsx | 1 + .../slide-renderer/SlideRenderer.tsx | 4 ++-- .../core/src/components/submit/Submit.tsx | 2 ++ .../core/src/model/json-definitions/Layout.ts | 6 +++++ .../defaults/DefaultModelTransformer.ts | 24 ++++++++++++------- 5 files changed, 26 insertions(+), 11 deletions(-) diff --git a/packages/core/src/components/button/Button.tsx b/packages/core/src/components/button/Button.tsx index f886565..7aa31cd 100644 --- a/packages/core/src/components/button/Button.tsx +++ b/packages/core/src/components/button/Button.tsx @@ -17,6 +17,7 @@ const useButtonStyles = makeStyles({ container: { display: 'flex', alignItems: 'center', + justifyContent:'center', ...shorthands.gap(quickformtokens.gap1), marginTop: '30px', }, diff --git a/packages/core/src/components/renderers/slide-renderer/SlideRenderer.tsx b/packages/core/src/components/renderers/slide-renderer/SlideRenderer.tsx index 9a03fa2..388a961 100644 --- a/packages/core/src/components/renderers/slide-renderer/SlideRenderer.tsx +++ b/packages/core/src/components/renderers/slide-renderer/SlideRenderer.tsx @@ -8,7 +8,7 @@ import { mergeClasses } from '@griffel/react'; import { IconResolver } from '../../icons/IconResolver'; import { SlideModel } from '../../../model'; - + export const SlideRenderer: React.FC = () => { const { state, goToNextSlide } = useQuickForm(); @@ -47,7 +47,7 @@ export const SlideRenderer: React.FC = () => { >