TTP -> MTP, A lot of other stuff #21
1 changed files with 16 additions and 39 deletions
commit
f898da653b
|
|
@ -36,7 +36,6 @@ import {
|
||||||
Trash,
|
Trash,
|
||||||
} from "lucide-react";
|
} from "lucide-react";
|
||||||
import { cloneElement, useMemo, useState, useSyncExternalStore } from "react";
|
import { cloneElement, useMemo, useState, useSyncExternalStore } from "react";
|
||||||
import { AnimatePresence, motion } from "motion/react";
|
|
||||||
import type {
|
import type {
|
||||||
MouseEvent as ReactMouseEvent,
|
MouseEvent as ReactMouseEvent,
|
||||||
ReactElement,
|
ReactElement,
|
||||||
|
|
@ -296,27 +295,7 @@ function MiniMessageMenu({
|
||||||
shiftIsPressed: boolean;
|
shiftIsPressed: boolean;
|
||||||
}) {
|
}) {
|
||||||
return (
|
return (
|
||||||
<motion.div
|
<div className="absolute right-4 -top-3 z-10">
|
||||||
layoutId="chat-mini-message-menu"
|
|
||||||
className="absolute right-4 -top-3 z-10"
|
|
||||||
initial={{ opacity: 0 }}
|
|
||||||
animate={{ opacity: 1 }}
|
|
||||||
exit={{
|
|
||||||
opacity: 0,
|
|
||||||
transition: {
|
|
||||||
opacity: { duration: 0.12, delay: 0.08 },
|
|
||||||
},
|
|
||||||
}}
|
|
||||||
transition={{
|
|
||||||
layout: {
|
|
||||||
type: "spring",
|
|
||||||
stiffness: 650,
|
|
||||||
damping: 34,
|
|
||||||
mass: 0.65,
|
|
||||||
},
|
|
||||||
opacity: { duration: 0.12 },
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<Card className="flex flex-row justify-end gap-0! rounded-lg! p-0! shadow-lg">
|
<Card className="flex flex-row justify-end gap-0! rounded-lg! p-0! shadow-lg">
|
||||||
{quickReactions.map((emoji) => (
|
{quickReactions.map((emoji) => (
|
||||||
<MiniMenuTooltip
|
<MiniMenuTooltip
|
||||||
|
|
@ -418,7 +397,7 @@ function MiniMessageMenu({
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
</Card>
|
</Card>
|
||||||
</motion.div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -599,22 +578,20 @@ export default function MessageContextMenu({
|
||||||
onPointerLeave={scheduleMiniMenuClose}
|
onPointerLeave={scheduleMiniMenuClose}
|
||||||
>
|
>
|
||||||
{children}
|
{children}
|
||||||
<AnimatePresence>
|
{!hideMiniMenu && activeMenuId === messageId && (
|
||||||
{!hideMiniMenu && activeMenuId === messageId && (
|
<MiniMessageMenu
|
||||||
<MiniMessageMenu
|
isOwnMessage={isOwnMessage}
|
||||||
isOwnMessage={isOwnMessage}
|
onDelete={() => deleteMessage(messageId)}
|
||||||
onDelete={() => deleteMessage(messageId)}
|
onEdit={() => onSetEditing(true)}
|
||||||
onEdit={() => onSetEditing(true)}
|
onOpenMenu={openMenu}
|
||||||
onOpenMenu={openMenu}
|
onOpenPicker={() => setPickerOpen(true)}
|
||||||
onOpenPicker={() => setPickerOpen(true)}
|
usePickerTrigger={!isMobile}
|
||||||
usePickerTrigger={!isMobile}
|
onReact={selectReaction}
|
||||||
onReact={selectReaction}
|
quickReactions={quickReactions}
|
||||||
quickReactions={quickReactions}
|
onReply={() => setReplyTo(messageId)}
|
||||||
onReply={() => setReplyTo(messageId)}
|
shiftIsPressed={shiftIsPressed}
|
||||||
shiftIsPressed={shiftIsPressed}
|
/>
|
||||||
/>
|
)}
|
||||||
)}
|
|
||||||
</AnimatePresence>
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue