refac: allow emoji unselect from folder
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user