参考になる実装。
`UserSuggestWrapper.ts`
```ts
const lastMentionedByUser = ref<Record<string, number>>({});
onMounted(async () => {
lastMentionedUserMapStorage.watch((newValue) => {
lastMentionedByUser.value = newValue;
});
lastMentionedByUser.value = await lastMentionedUserMapStorage.getValue();
});
const suggestions = computed(() =>
userSuggestions.value
.sort(sorter((x) => Number(x.value.startsWith(keyword.value)), "desc"))
.sort(sorter((x) => lastMentionedByUser.value[x.user.id] ?? -1, "desc")),
);
const handleApply = (item: UserSuggestion) => {
lastMentionedUserMapStorage.setValue({
[item.user.id]: DateTime.now().unix,
...lastMentionedByUser.value,
});
};
```
追加。
```ts
export const lastSelectedChannelMapStorage = storage.defineItem<
Record<string, number>
>("local:lastSelectedChannelMap", { defaultValue: {} });
```
- `channel`変更時にstorage更新
- `channels`にはstorageから値セット (watch)