-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
入力フォームでもリアクション選択時に使用するピッカーを使うようにしたい (#12337)
* 入力フォームでもリアクション選択時に使用するピッカーを使うようにしたい * erase console.log * fix CHANGELOG.md * reaction-picker.ts を戻し、今回の対応を入れた emoji-picker.ts を新たに作成 * fix CHANGELOG.md * tweak --------- Co-authored-by: osamu <[email protected]> Co-authored-by: syuilo <[email protected]>
- Loading branch information
1 parent
af15f8d
commit 5e1d872
Showing
6 changed files
with
84 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
/* | ||
* SPDX-FileCopyrightText: syuilo and other misskey contributors | ||
* SPDX-License-Identifier: AGPL-3.0-only | ||
*/ | ||
|
||
import { defineAsyncComponent, Ref, ref } from 'vue'; | ||
import { popup } from '@/os.js'; | ||
|
||
/** | ||
* 絵文字ピッカーを表示する。 | ||
* 類似の機能として{@link ReactionPicker}が存在しているが、この機能とは動きが異なる。 | ||
* 投稿フォームなどで絵文字を選択する時など、絵文字ピックアップ後でもダイアログが消えずに残り、 | ||
* 一度表示したダイアログを連続で使用できることが望ましいシーンでの利用が想定される。 | ||
*/ | ||
class EmojiPicker { | ||
private src: Ref<HTMLElement | null> = ref(null); | ||
private manualShowing = ref(false); | ||
private onChosen?: (emoji: string) => void; | ||
private onClosed?: () => void; | ||
|
||
constructor() { | ||
// nop | ||
} | ||
|
||
public async init() { | ||
await popup(defineAsyncComponent(() => import('@/components/MkEmojiPickerDialog.vue')), { | ||
src: this.src, | ||
asReactionPicker: false, | ||
manualShowing: this.manualShowing, | ||
choseAndClose: false, | ||
}, { | ||
done: emoji => { | ||
if (this.onChosen) this.onChosen(emoji); | ||
}, | ||
close: () => { | ||
this.manualShowing.value = false; | ||
}, | ||
closed: () => { | ||
this.src.value = null; | ||
if (this.onClosed) this.onClosed(); | ||
}, | ||
}); | ||
} | ||
|
||
public show( | ||
src: HTMLElement, | ||
onChosen: EmojiPicker['onChosen'], | ||
onClosed: EmojiPicker['onClosed'], | ||
) { | ||
this.src.value = src; | ||
this.manualShowing.value = true; | ||
this.onChosen = onChosen; | ||
this.onClosed = onClosed; | ||
} | ||
} | ||
|
||
export const emojiPicker = new EmojiPicker(); |