2024-02-28 08:18:21 +00:00
|
|
|
import { ComponentPropsWithoutRef, useMemo } from "react";
|
|
|
|
import AnswerItem from "../../AnswerDraggableList/AnswerItem";
|
|
|
|
import VariantAdornment from "./VariantAdornment";
|
|
|
|
import VariantAdornmentMobile from "./VariantAdornmentMobile";
|
2024-09-11 06:11:48 +00:00
|
|
|
import { updateQuestion } from "@/stores/questions/actions";
|
2024-02-28 08:18:21 +00:00
|
|
|
|
|
|
|
type Props = Omit<
|
|
|
|
ComponentPropsWithoutRef<typeof AnswerItem>,
|
|
|
|
"additionalContent" | "additionalMobile"
|
|
|
|
> & {
|
|
|
|
isTablet: boolean;
|
|
|
|
setAnchorElement: React.Dispatch<React.SetStateAction<HTMLDivElement | null>>;
|
|
|
|
setSelectedVariant: React.Dispatch<React.SetStateAction<string | null>>;
|
|
|
|
setOpen: React.Dispatch<React.SetStateAction<boolean>>;
|
2024-09-11 06:11:48 +00:00
|
|
|
isOwn: boolean;
|
2024-09-12 16:15:12 +00:00
|
|
|
ownPlaceholder: string;
|
2024-02-28 08:18:21 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
export default function EmojiAnswerItem({
|
|
|
|
index,
|
|
|
|
questionId,
|
|
|
|
variant,
|
|
|
|
disableKeyDown,
|
|
|
|
largeCheck,
|
|
|
|
isTablet,
|
|
|
|
setAnchorElement,
|
|
|
|
setSelectedVariant,
|
|
|
|
setOpen,
|
2024-09-12 16:15:12 +00:00
|
|
|
isOwn,
|
|
|
|
ownPlaceholder,
|
2024-02-28 08:18:21 +00:00
|
|
|
}: Props) {
|
2024-09-11 06:11:48 +00:00
|
|
|
|
|
|
|
|
2024-02-28 08:18:21 +00:00
|
|
|
const addOrEditImageButton = useMemo(() => {
|
|
|
|
return (
|
|
|
|
!isTablet && (
|
|
|
|
<VariantAdornment
|
|
|
|
extendedText={variant.extendedText}
|
|
|
|
onClick={({ currentTarget }) => {
|
|
|
|
setAnchorElement(currentTarget);
|
|
|
|
setSelectedVariant(variant.id);
|
|
|
|
setOpen(true);
|
|
|
|
}}
|
|
|
|
/>
|
|
|
|
)
|
|
|
|
);
|
|
|
|
}, [
|
|
|
|
isTablet,
|
|
|
|
variant.extendedText,
|
|
|
|
variant.id,
|
|
|
|
setAnchorElement,
|
|
|
|
setSelectedVariant,
|
|
|
|
setOpen,
|
|
|
|
]);
|
|
|
|
|
|
|
|
const addOrEditImageButtonMobile = useMemo(() => {
|
|
|
|
return (
|
|
|
|
isTablet && (
|
|
|
|
<VariantAdornmentMobile
|
|
|
|
extendedText={variant.extendedText}
|
|
|
|
onClick={({ currentTarget }) => {
|
|
|
|
setAnchorElement(currentTarget);
|
|
|
|
setSelectedVariant(variant.id);
|
|
|
|
setOpen(true);
|
|
|
|
}}
|
|
|
|
/>
|
|
|
|
)
|
|
|
|
);
|
|
|
|
}, [
|
|
|
|
isTablet,
|
|
|
|
variant.extendedText,
|
|
|
|
variant.id,
|
|
|
|
setAnchorElement,
|
|
|
|
setSelectedVariant,
|
|
|
|
setOpen,
|
|
|
|
]);
|
|
|
|
|
|
|
|
return (
|
|
|
|
<AnswerItem
|
|
|
|
index={index}
|
|
|
|
disableKeyDown={disableKeyDown}
|
|
|
|
questionId={questionId}
|
|
|
|
largeCheck={largeCheck}
|
|
|
|
variant={variant}
|
|
|
|
additionalContent={addOrEditImageButton}
|
|
|
|
additionalMobile={addOrEditImageButtonMobile}
|
2024-09-11 06:11:48 +00:00
|
|
|
isOwn={isOwn}
|
2024-09-12 16:15:12 +00:00
|
|
|
ownPlaceholder={ownPlaceholder}
|
2024-02-28 08:18:21 +00:00
|
|
|
/>
|
|
|
|
);
|
|
|
|
}
|