diff options
| author | Chocolate Pie <106949016+chocolate-pie@users.noreply.github.com> | 2023-05-26 14:47:31 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-26 14:47:31 +0900 |
| commit | 98aef974df0bc563ac2aaf47bee996194d5ec200 (patch) | |
| tree | 91394b47055aef434be3d92823d80a41b863a020 | |
| parent | feat: アカウント初期設定ウィザードに戻るボタンと、後... (diff) | |
| download | sharkey-98aef974df0bc563ac2aaf47bee996194d5ec200.tar.gz sharkey-98aef974df0bc563ac2aaf47bee996194d5ec200.tar.bz2 sharkey-98aef974df0bc563ac2aaf47bee996194d5ec200.zip | |
enhance: ハッシュタグのノート一覧ページから、そのハッシュタグで投稿するボタンを追加、お知らせの画像URLを空にできない問題を修正 (#10878)
* fix: お知らせの画像URLを空にできない問題を修正 (misskey-dev/misskey#10657)
* ハッシュタグのノート一覧ページからノートできるように(misskey-dev/misskey#10854)
* fix: 色々直した
* location.reloadを使わないように
* CHANGELOGを編集
* tweak
* Update tag.vue
---------
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
| -rw-r--r-- | CHANGELOG.md | 4 | ||||
| -rw-r--r-- | locales/index.d.ts | 1 | ||||
| -rw-r--r-- | locales/ja-JP.yml | 1 | ||||
| -rw-r--r-- | packages/backend/src/server/api/endpoints/admin/announcements/update.ts | 5 | ||||
| -rw-r--r-- | packages/frontend/src/pages/tag.vue | 39 |
5 files changed, 46 insertions, 4 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 829d3e2079..ecbad51e90 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,7 @@ - AiScriptを0.13.3に更新 - Deck UIを使用している場合、`/`以外にアクセスした際にZen UIで表示するように - メインカラムを設置していない場合の問題を解決 +- ハッシュタグのノート一覧ページから、そのハッシュタグで投稿するボタンを追加 - アカウント初期設定ウィザードに戻るボタンを追加 - アカウントの初期設定ウィザードにあとでボタンを追加 - Fix: URLプレビューで情報が取得できなかった際の挙動を修正 @@ -36,6 +37,9 @@ - fix:ロールタイムラインが無効でも投稿が流れてしまう問題の修正 - fix:ロールタイムラインにて全ての投稿が流れてしまう問題の修正 +### Server +- Fix: お知らせの画像URLを空にできない問題を修正 + ## 13.12.2 ## NOTE diff --git a/locales/index.d.ts b/locales/index.d.ts index 79f0b46d4d..a54268676e 100644 --- a/locales/index.d.ts +++ b/locales/index.d.ts @@ -795,6 +795,7 @@ export interface Locale { "noBotProtectionWarning": string; "configure": string; "postToGallery": string; + "postToHashtag": string; "gallery": string; "recentPosts": string; "popularPosts": string; diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index 56e2295f10..0ca37caa58 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -792,6 +792,7 @@ noMaintainerInformationWarning: "管理者情報が設定されていません noBotProtectionWarning: "Botプロテクションが設定されていません。" configure: "設定する" postToGallery: "ギャラリーへ投稿" +postToHashtag: "このハッシュタグで投稿" gallery: "ギャラリー" recentPosts: "最近の投稿" popularPosts: "人気の投稿" diff --git a/packages/backend/src/server/api/endpoints/admin/announcements/update.ts b/packages/backend/src/server/api/endpoints/admin/announcements/update.ts index 2393c2441c..12db1f78fb 100644 --- a/packages/backend/src/server/api/endpoints/admin/announcements/update.ts +++ b/packages/backend/src/server/api/endpoints/admin/announcements/update.ts @@ -25,7 +25,7 @@ export const paramDef = { id: { type: 'string', format: 'misskey:id' }, title: { type: 'string', minLength: 1 }, text: { type: 'string', minLength: 1 }, - imageUrl: { type: 'string', nullable: true, minLength: 1 }, + imageUrl: { type: 'string', nullable: true, minLength: 0 }, }, required: ['id', 'title', 'text', 'imageUrl'], } as const; @@ -46,7 +46,8 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { updatedAt: new Date(), title: ps.title, text: ps.text, - imageUrl: ps.imageUrl, + /* eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- 空の文字列の場合、nullを渡すようにするため */ + imageUrl: ps.imageUrl || null, }); }); } diff --git a/packages/frontend/src/pages/tag.vue b/packages/frontend/src/pages/tag.vue index b53db3f67b..104e738866 100644 --- a/packages/frontend/src/pages/tag.vue +++ b/packages/frontend/src/pages/tag.vue @@ -2,15 +2,27 @@ <MkStickyContainer> <template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template> <MkSpacer :contentMax="800"> - <MkNotes class="" :pagination="pagination"/> + <MkNotes ref="notes" class="" :pagination="pagination"/> </MkSpacer> + <template v-if="$i" #footer> + <div :class="$style.footer"> + <MkSpacer :contentMax="800" :marginMin="16" :marginMax="16"> + <MkButton rounded primary :class="$style.button" @click="post()"><i class="ti ti-pencil"></i>{{ i18n.ts.postToHashtag }}</MkButton> + </MkSpacer> + </div> + </template> </MkStickyContainer> </template> <script lang="ts" setup> -import { computed } from 'vue'; +import { computed, ref } from 'vue'; import MkNotes from '@/components/MkNotes.vue'; +import MkButton from '@/components/MkButton.vue'; import { definePageMetadata } from '@/scripts/page-metadata'; +import { i18n } from '@/i18n'; +import { $i } from '@/account'; +import { defaultStore } from '@/store'; +import * as os from '@/os'; const props = defineProps<{ tag: string; @@ -23,6 +35,16 @@ const pagination = { tag: props.tag, })), }; +const notes = ref<InstanceType<typeof MkNotes>>(); + +async function post() { + defaultStore.set('postFormHashtags', props.tag); + defaultStore.set('postFormWithHashtags', true); + await os.post(); + defaultStore.set('postFormHashtags', ''); + defaultStore.set('postFormWithHashtags', false); + notes.value?.pagingComponent?.reload(); +} const headerActions = $computed(() => []); @@ -33,3 +55,16 @@ definePageMetadata(computed(() => ({ icon: 'ti ti-hash', }))); </script> + +<style lang="scss" module> +.footer { + -webkit-backdrop-filter: var(--blur, blur(15px)); + backdrop-filter: var(--blur, blur(15px)); + border-top: solid 0.5px var(--divider); + display: flex; +} + +.button { + margin: 0 auto var(--margin) auto; +} +</style> |