2
0

🧰 Aggregate utils & set up results collection in viewer

This commit is contained in:
Baptiste Arnaud
2021-12-29 10:22:26 +01:00
parent 447172d0cb
commit f088f694b9
42 changed files with 404 additions and 141 deletions

View File

@ -0,0 +1,34 @@
import { Answer } from '../models'
import React, { createContext, ReactNode, useContext, useState } from 'react'
const answersContext = createContext<{
answers: Answer[]
addAnswer: (answer: Answer) => void
//@ts-ignore
}>({})
export const AnswersContext = ({
children,
typebotId,
}: {
children: ReactNode
typebotId: string
}) => {
const [answers, setAnswers] = useState<Answer[]>([])
const addAnswer = (answer: Answer) =>
setAnswers((answers) => [...answers, answer])
return (
<answersContext.Provider
value={{
answers,
addAnswer,
}}
>
{children}
</answersContext.Provider>
)
}
export const useAnswers = () => useContext(answersContext)

View File

@ -1,50 +0,0 @@
import { Answer, Result } from '../models'
import React, {
createContext,
Dispatch,
ReactNode,
SetStateAction,
useContext,
useState,
} from 'react'
const resultContext = createContext<{
result: Result
setResult: Dispatch<SetStateAction<Result>>
addAnswer: (answer: Answer) => void
//@ts-ignore
}>({})
export const ResultContext = ({
children,
typebotId,
}: {
children: ReactNode
typebotId: string
}) => {
const [result, setResult] = useState<Result>({
id: 'tmp',
createdAt: new Date(),
updatedAt: new Date(),
answers: [],
typebotId,
isCompleted: false,
})
const addAnswer = (answer: Answer) =>
setResult({ ...result, answers: [...result.answers, answer] })
return (
<resultContext.Provider
value={{
result,
setResult,
addAnswer,
}}
>
{children}
</resultContext.Provider>
)
}
export const useResult = () => useContext(resultContext)