From d2e9e01962703958f57b458ac3aeb65de7a0f313 Mon Sep 17 00:00:00 2001 From: Vishnu PS <68158388+v-i-s-h-n-u-ps@users.noreply.github.com> Date: Thu, 25 Apr 2024 01:12:53 +0530 Subject: [PATCH] Add results to email callback (#182) * added results * updated result data set exposed in email callback * updated result data set exposed in email callback --- .../components/ShareResultsModal/ShareResultsModal.test.tsx | 6 +++++- src/components/ShareResultsModal/ShareResultsModal.tsx | 5 ++++- src/types.ts | 6 +++++- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/spec/components/ShareResultsModal/ShareResultsModal.test.tsx b/spec/components/ShareResultsModal/ShareResultsModal.test.tsx index 6510c755..f05f3bec 100644 --- a/spec/components/ShareResultsModal/ShareResultsModal.test.tsx +++ b/spec/components/ShareResultsModal/ShareResultsModal.test.tsx @@ -1,15 +1,18 @@ import React from 'react'; import { fireEvent, render, screen, waitFor } from '@testing-library/react'; +import * as factories from '../../__tests__/factories'; + import ShareResultsModal from '../../../src/components/ShareResultsModal/ShareResultsModal'; import { QuizReturnState } from '../../../src/types'; import * as useShareResultsLink from '../../../src/hooks/useShareResultsLink'; describe(`${ShareResultsModal.name} client`, () => { + const results = factories.quizResults.build(); const props: React.ComponentProps = { onClose: jest.fn(), onEmailResults: jest.fn(), - quizState: {} as QuizReturnState['quiz'], + quizState: { results } as QuizReturnState['quiz'], }; beforeEach(() => { @@ -25,6 +28,7 @@ describe(`${ShareResultsModal.name} client`, () => { expect(props.onEmailResults).toHaveBeenCalledWith({ email: 'hi@mail.com', url: 'http://example.com', + results: results!.response!.results, }) ); }); diff --git a/src/components/ShareResultsModal/ShareResultsModal.tsx b/src/components/ShareResultsModal/ShareResultsModal.tsx index d1105784..cafeb85d 100644 --- a/src/components/ShareResultsModal/ShareResultsModal.tsx +++ b/src/components/ShareResultsModal/ShareResultsModal.tsx @@ -19,6 +19,7 @@ export default function ShareResultsModal({ onEmailResults, }: ShareResultsModalProps) { const url = useShareResultsLink(quizState); + const results = quizState?.results?.response?.results; return (
@@ -42,7 +43,9 @@ export default function ShareResultsModal({ ? 'Share or save your quiz results through email or using the link below.' : 'Share or save your quiz results with this link.'}
- {onEmailResults && onEmailResults({ email, url })} />} + {onEmailResults && ( + onEmailResults({ email, url, results })} /> + )} diff --git a/src/types.ts b/src/types.ts index bc9d2690..ca041552 100644 --- a/src/types.ts +++ b/src/types.ts @@ -31,7 +31,11 @@ export type { } from '@constructor-io/constructorio-client-javascript/lib/types'; export type QuizResultDataPartial = Partial; -export type QuizEmailResults = { email: string; url: string }; +export type QuizEmailResults = { + email: string; + url: string; + results?: Partial[]; +}; // QUIZ PROPS export interface ResultCardOptions {