refac: allow emoji unselect from folder

This commit is contained in:
Timothy Jaeryang Baek
2026-03-11 15:30:57 -05:00
parent 3a6b5ebb5f
commit 865880a0b1
2 changed files with 12 additions and 4 deletions
@@ -76,7 +76,7 @@
const updateIconHandler = async (iconName) => { const updateIconHandler = async (iconName) => {
const res = await updateFolderById(localStorage.token, folder.id, { const res = await updateFolderById(localStorage.token, folder.id, {
meta: { meta: {
icon: iconName icon: iconName ?? ''
} }
}).catch((error) => { }).catch((error) => {
toast.error(`${error}`); toast.error(`${error}`);
@@ -84,7 +84,7 @@
}); });
if (res) { if (res) {
folder.meta = { ...folder.meta, icon: iconName }; folder.meta = { ...folder.meta, icon: iconName ?? '' };
toast.success($i18n.t('Folder updated successfully')); toast.success($i18n.t('Folder updated successfully'));
@@ -167,6 +167,7 @@
<div class="text-center flex gap-3.5 items-center"> <div class="text-center flex gap-3.5 items-center">
<EmojiPicker <EmojiPicker
onClose={() => {}} onClose={() => {}}
selected={folder?.meta?.icon ?? null}
onSubmit={(name) => { onSubmit={(name) => {
console.log(name); console.log(name);
updateIconHandler(name); updateIconHandler(name);
+9 -2
View File
@@ -19,6 +19,7 @@
export let side = 'top'; export let side = 'top';
export let align = 'start'; export let align = 'start';
export let user = null; export let user = null;
export let selected = null;
let show = false; let show = false;
let emojis = emojiShortCodes; let emojis = emojiShortCodes;
@@ -97,7 +98,11 @@
// Handle emoji selection // Handle emoji selection
function selectEmoji(emoji) { function selectEmoji(emoji) {
const selectedCode = emoji.shortCodes[0]; const selectedCode = emoji.shortCodes[0];
onSubmit(selectedCode); if (selected === selectedCode) {
onSubmit(null);
} else {
onSubmit(selectedCode);
}
show = false; show = false;
} }
</script> </script>
@@ -131,6 +136,8 @@
bind:value={search} bind:value={search}
/> />
</div> </div>
<!-- Virtualized Emoji List --> <!-- Virtualized Emoji List -->
<div class="w-full flex justify-start h-96 overflow-y-auto px-3 pb-3 text-sm"> <div class="w-full flex justify-start h-96 overflow-y-auto px-3 pb-3 text-sm">
{#if emojiRows.length === 0} {#if emojiRows.length === 0}
@@ -155,7 +162,7 @@
placement="top" placement="top"
> >
<button <button
class="p-1.5 rounded-lg cursor-pointer hover:bg-gray-200 dark:hover:bg-gray-700 transition" class="p-1.5 rounded-lg cursor-pointer hover:bg-gray-200 dark:hover:bg-gray-700 transition {selected === emojiItem.shortCodes[0] ? 'bg-gray-200 dark:bg-gray-700' : ''}"
on:click={() => selectEmoji(emojiItem)} on:click={() => selectEmoji(emojiItem)}
> >
<img <img