Skip to content

Commit

Permalink
enhance: implement frontend
Browse files Browse the repository at this point in the history
  • Loading branch information
kakkokari-gtyih committed Sep 25, 2024
1 parent 1412b6e commit 6ba429a
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 1 deletion.
4 changes: 4 additions & 0 deletions locales/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5096,6 +5096,10 @@ export interface Locale extends ILocale {
* 新規登録したユーザーに表示されるチュートリアルをスキップできないようにします。チュートリアルを完了しなかったりチュートリアルページを回避したりした場合でも、強制的にリダイレクトされます。
*/
"prohibitSkippingInitialTutorialDescription": string;
/**
* エクスポートしたいカテゴリを選択
*/
"selectCategoryYouWantToExport": string;
"_delivery": {
/**
* 配信状態
Expand Down
1 change: 1 addition & 0 deletions locales/ja-JP.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1270,6 +1270,7 @@ createdAntennas: "作成したアンテナ"
clipNoteLimitExceeded: "これ以上このクリップにノートを追加できません。"
prohibitSkippingInitialTutorial: "チュートリアルをスキップできないようにする"
prohibitSkippingInitialTutorialDescription: "新規登録したユーザーに表示されるチュートリアルをスキップできないようにします。チュートリアルを完了しなかったりチュートリアルページを回避したりした場合でも、強制的にリダイレクトされます。"
selectCategoryYouWantToExport: "エクスポートしたいカテゴリを選択"

_delivery:
status: "配信状態"
Expand Down
36 changes: 36 additions & 0 deletions packages/frontend/src/pages/custom-emojis-manager.vue
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,8 @@ import { selectFile } from '@/scripts/select-file.js';
import * as os from '@/os.js';
import { misskeyApi } from '@/scripts/misskey-api.js';
import { i18n } from '@/i18n.js';
import type { EnumItem } from '@/scripts/form.js';
import { customEmojiCategories } from '@/custom-emojis.js';
import { definePageMetadata } from '@/scripts/page-metadata.js';

const emojisPaginationComponent = shallowRef<InstanceType<typeof MkPagination>>();
Expand Down Expand Up @@ -180,7 +182,41 @@ const menu = (ev: MouseEvent) => {
icon: 'ti ti-download',
text: i18n.ts.export,
action: async () => {
const emojiCategoryItems = customEmojiCategories.value.map(category => {
if (category == null) {
return { value: '_NULL_', label: i18n.ts.other };
} else {
return { value: category, label: category };
}
}) satisfies EnumItem[];

// TODO: 複数選択可にする
const { canceled, result } = await os.form(i18n.ts.selectCategoryYouWantToExport, {
category: {
type: 'enum',
label: i18n.ts.category,
enum: [
{ value: '_ALL_', label: i18n.ts.all },
...emojiCategoryItems,
],
default: '_ALL_',
},
});

if (canceled) return;

let categories: (string | null)[] | null = null;

if (result.category === '_ALL_') {
categories = null;
} else if (result.category === '_NULL_') {
categories = [null];
} else {
categories = [result.category];
}

misskeyApi('export-custom-emojis', {
categories,
})
.then(() => {
os.alert({
Expand Down
2 changes: 1 addition & 1 deletion packages/frontend/src/scripts/form.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

import * as Misskey from 'misskey-js';

type EnumItem = string | {
export type EnumItem = string | {
label: string;
value: string;
};
Expand Down

0 comments on commit 6ba429a

Please sign in to comment.