rDrama/chat/src/features/emoji/QuickEmojis.tsx

50 lines
1.1 KiB
TypeScript
Raw Normal View History

[DO NOT MERGE] Chat restructure (#360) * Create new subdirectory for chat-related stuff * Gitignore * Have new code show up on chat * Have new code show up on chat * Fix config issue * More script stuff * Create UserInput components * More chat changes * More updates to chat * Add chat:watch script * Move up state and pass down * Match up existing functionality entirely * Match up existing functionality entirely * Send a message when hitting Enter * feature based directories * First crack at emoji drawer * Leave everything in a fucked up state ugh * Leave it in a better state * Stop for the night * Decouple by abstract chat functionality to provider * Wait a minute... * Small chat restructure * Prepare for notifications * Add root context * Flash number of messages * Read this and u die * Add quote functionality * Couple tweaks * Shallowenize the features dir/ * Add activity list * Ch-ch-ch-ch-ch-changes * Enable moving drawer * Hover style on activities * UserList changes * Add emoji processing logic * Duhhhh * Scroll to top when changing query * Put the emoji in the drawer * Improve emoji drawer * Add emoji genres * Do not show activities * Add feature flag technology * Fix issue where own messages were triggering notifications * Adjust startup scripts * Responsive part 1 * Styling changes for emoji genres * More emoji drawer styling * Add QuickEmojis * Re-add classnames * Set version * Modify build script * Modify build script * Mild renaming * Lots of styling changes * Leggo.
2022-09-24 03:49:40 +00:00
import React from "react";
interface Props {
emojis: string[];
onSelectEmoji(emoji: string): void;
}
export function QuickEmojis({ emojis, onSelectEmoji }: Props) {
return (
<div
style={{
backgroundColor: "var(--gray-700)",
maxHeight: 250,
overflowY: "auto",
overflowX: "hidden",
borderRadius: "4px",
border: "1px solid rgba(255, 255, 255, 0.3)",
boxShadow: "0px 2px 5px rgb(0 0 0 / 20%)",
zIndex: 999,
}}
>
{emojis.map((emoji) => (
<div
key={emoji}
role="button"
onClick={() => onSelectEmoji(emoji)}
style={{
borderBottom: "1px solid #606060",
padding: "4px",
cursor: "pointer",
display: "flex",
alignItems: "center",
justifyContent: "space-between",
}}
>
<img
src={`/e/${emoji}.webp`}
style={{
objectFit: "contain",
width: 30,
height: 30,
}}
/>
<span>{emoji}</span>
</div>
))}
</div>
);
}