Skip to content

Commit

Permalink
Add results to email callback (#182)
Browse files Browse the repository at this point in the history
* added results

* updated result data set exposed in email callback

* updated result data set exposed in email callback
  • Loading branch information
v-i-s-h-n-u-ps authored Apr 24, 2024
1 parent 0d60c66 commit d2e9e01
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 3 deletions.
6 changes: 5 additions & 1 deletion spec/components/ShareResultsModal/ShareResultsModal.test.tsx
Original file line number Diff line number Diff line change
@@ -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<typeof ShareResultsModal> = {
onClose: jest.fn(),
onEmailResults: jest.fn(),
quizState: {} as QuizReturnState['quiz'],
quizState: { results } as QuizReturnState['quiz'],
};

beforeEach(() => {
Expand All @@ -25,6 +28,7 @@ describe(`${ShareResultsModal.name} client`, () => {
expect(props.onEmailResults).toHaveBeenCalledWith({
email: 'hi@mail.com',
url: 'http://example.com',
results: results!.response!.results,
})
);
});
Expand Down
5 changes: 4 additions & 1 deletion src/components/ShareResultsModal/ShareResultsModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ export default function ShareResultsModal({
onEmailResults,
}: ShareResultsModalProps) {
const url = useShareResultsLink(quizState);
const results = quizState?.results?.response?.results;

return (
<div className='cio-share-results-modal' role='presentation' onClick={onClose}>
Expand All @@ -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.'}
</div>
{onEmailResults && <EmailField onSubmit={(email) => onEmailResults({ email, url })} />}
{onEmailResults && (
<EmailField onSubmit={(email) => onEmailResults({ email, url, results })} />
)}
<LinkField url={url} />
</div>
</div>
Expand Down
6 changes: 5 additions & 1 deletion src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,11 @@ export type {
} from '@constructor-io/constructorio-client-javascript/lib/types';

export type QuizResultDataPartial = Partial<QuizResultData>;
export type QuizEmailResults = { email: string; url: string };
export type QuizEmailResults = {
email: string;
url: string;
results?: Partial<QuizResultData>[];
};

// QUIZ PROPS
export interface ResultCardOptions {
Expand Down

0 comments on commit d2e9e01

Please sign in to comment.