diff options
| author | かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com> | 2025-12-01 18:36:55 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-01 18:36:55 +0900 |
| commit | f222d7e24d3d134a078868c89363cacde906ccdc (patch) | |
| tree | 987edf63823a078365a514b0c755258b196a5d1b /packages/backend/src/server/web/views/flash.tsx | |
| parent | fix(frontend): visibilityStateがhiddenな状態でstartViewTransitionしな... (diff) | |
| download | misskey-f222d7e24d3d134a078868c89363cacde906ccdc.tar.gz misskey-f222d7e24d3d134a078868c89363cacde906ccdc.tar.bz2 misskey-f222d7e24d3d134a078868c89363cacde906ccdc.zip | |
enhance(backend): pugをやめ、JSXベースのテンプレートに変更 (#16908)
* enhance(backend): pugをやめ、JSXベースのテンプレートに変更 (to misskey-dev dev branch) (#16889)
* wip
* wip
* wip
* wip
* fix lint
* attempt to fix test
* fix
* fix
* fix: oauthページの描画がおかしい問題を修正
* typo [ci skip]
* fix
* fix
* fix
* fix
* fix
* refactor
* fix
* fix
* fix broken lockfile
* fix: expose supported languages as global variable
* remove i18n package from root as it is no longer required [ci skip]
* fix
* fix: add i18n package.json to Docker target-builder stage for federation tests (#16909)
* Initial plan
* fix: add i18n package.json to Docker target-builder stage for federation tests
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
* fix: followup-test-federation for enh-remove-pug (#16910)
* fix: followup-test-federation for enh-remove-pug
* Revert "fix: add i18n package.json to Docker target-builder stage for federation tests (#16909)"
This reverts commit 14313468d34f49c363eef4d0a932e9fc0d9a37fb.
* fix: CSSが読み込まれない場合がある問題を修正
* fix [ci skip]
* fix: propsのデフォルト値をnull合体演算子から論理和演算子に変更(空文字に対処するため)
* remove @types/pug
* enhance: bootloaderを埋め込むように
* fix possible race condition
* remove esbuild
---------
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
Co-authored-by: おさむのひと <46447427+samunohito@users.noreply.github.com>
Diffstat (limited to 'packages/backend/src/server/web/views/flash.tsx')
| -rw-r--r-- | packages/backend/src/server/web/views/flash.tsx | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/packages/backend/src/server/web/views/flash.tsx b/packages/backend/src/server/web/views/flash.tsx new file mode 100644 index 0000000000..25a6b2c0ae --- /dev/null +++ b/packages/backend/src/server/web/views/flash.tsx @@ -0,0 +1,59 @@ +/* + * SPDX-FileCopyrightText: syuilo and misskey-project + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import type { Packed } from '@/misc/json-schema.js'; +import type { MiUserProfile } from '@/models/UserProfile.js'; +import type { CommonProps } from '@/server/web/views/_.js'; +import { Layout } from '@/server/web/views/base.js'; + +export function FlashPage(props: CommonProps<{ + flash: Packed<'Flash'>; + profile: MiUserProfile; +}>) { + function ogBlock() { + return ( + <> + <meta property="og:type" content="article" /> + <meta property="og:title" content={props.flash.title} /> + <meta property="og:description" content={props.flash.summary} /> + <meta property="og:url" content={`${props.config.url}/play/${props.flash.id}`} /> + {props.flash.user.avatarUrl ? ( + <> + <meta property="og:image" content={props.flash.user.avatarUrl} /> + <meta property="twitter:card" content="summary" /> + </> + ) : null} + </> + ); + } + + function metaBlock() { + return ( + <> + {props.profile.noCrawle ? <meta name="robots" content="noindex" /> : null} + {props.profile.preventAiLearning ? ( + <> + <meta name="robots" content="noimageai" /> + <meta name="robots" content="noai" /> + </> + ) : null} + <meta name="misskey:user-username" content={props.flash.user.username} /> + <meta name="misskey:user-id" content={props.flash.user.id} /> + <meta name="misskey:flash-id" content={props.flash.id} /> + </> + ); + } + + return ( + <Layout + {...props} + title={`${props.flash.title} | ${props.instanceName}`} + desc={props.flash.summary} + metaSlot={metaBlock()} + ogSlot={ogBlock()} + > + </Layout> + ); +} |