diff --git a/.github/ISSUE_TEMPLATE/01_bug-report.md b/.github/ISSUE_TEMPLATE/01_bug-report.md index f6fd593c85..46ce16f073 100644 --- a/.github/ISSUE_TEMPLATE/01_bug-report.md +++ b/.github/ISSUE_TEMPLATE/01_bug-report.md @@ -39,8 +39,20 @@ Please include errors from the developer console and/or server log files if you -Misskey version: -PostgreSQL version: -Redis version: -Your OS: -Your browser: +### 💻 Frontend +* Model and OS of the device(s): + +* Browser: + +* Server URL: + + +### 🛰 Backend (for instance admin) + + +* Installation Method or Hosting Service: +* Misskey: 13.x.x +* Node: 18.x.x +* PostgreSQL: 15.x.x +* Redis: 7.x.x +* OS and Architecture: diff --git a/CHANGELOG.md b/CHANGELOG.md index 530118e721..5737d6f72d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,14 @@ --> +## 13.13.1 (unreleased) + +### General +- プレイにAPI Tokenを要求できる関数を追加 + +### Server +- Fix: api/metaで`TypeError: JSON5.parse is not a function`エラーが発生する問題を修正 + ## 13.13.0 ### General @@ -22,7 +30,6 @@ - タイムラインにフォロイーの行った他人へのリプライを含めるかどうかの設定をアカウントに保存するのをやめるように - 今後はAPI呼び出し時およびストリーミング接続時に設定するようになります - リストを公開できるようになりました -- プレイにAPI Tokenを要求できる関数を追加 ### Client - リアクションの取り消し/変更時に確認ダイアログを出すように @@ -49,6 +56,7 @@ - Fix: 無効化されたアンテナにアクセスがあった際に再度有効化するように - Fix: お知らせの画像URLを空にできない問題を修正 - Fix: i/notificationsのsinceIdが機能しない問題を修正 +- Fix: pageのピン留めを解除することができない問題を修正 ## 13.12.2 diff --git a/cypress/e2e/basic.cy.js b/cypress/e2e/basic.cy.js index 652e0c2d70..2515c14ad6 100644 --- a/cypress/e2e/basic.cy.js +++ b/cypress/e2e/basic.cy.js @@ -169,25 +169,20 @@ describe('After user signed in', () => { cy.get('[data-cy-user-setup-user-description] textarea').type('ほげ'); // TODO: アイコン設定テスト - cy.get('[data-cy-user-setup-back]').click(); cy.get('[data-cy-user-setup-continue]').click(); // プライバシー設定 - cy.get('[data-cy-user-setup-back]').click(); cy.get('[data-cy-user-setup-continue]').click(); // フォローはスキップ - cy.get('[data-cy-user-setup-back]').click(); cy.get('[data-cy-user-setup-continue]').click(); // プッシュ通知設定はスキップ - cy.get('[data-cy-user-setup-back]').click(); cy.get('[data-cy-user-setup-continue]').click(); - cy.get('[data-cy-user-setup-back]').click(); cy.get('[data-cy-user-setup-continue]').click(); }); }); diff --git a/cypress/support/e2e.js b/cypress/support/e2e.js index 9185be344c..827a326d18 100644 --- a/cypress/support/e2e.js +++ b/cypress/support/e2e.js @@ -21,6 +21,8 @@ import './commands' Cypress.on('uncaught:exception', (err, runnable) => { if ([ + 'The source image cannot be decoded', + // Chrome 'ResizeObserver loop limit exceeded', diff --git a/locales/ko-KR.yml b/locales/ko-KR.yml index c36305137c..fd46eef1ff 100644 --- a/locales/ko-KR.yml +++ b/locales/ko-KR.yml @@ -870,7 +870,7 @@ instanceDefaultLightTheme: "서버 기본 라이트 테마" instanceDefaultDarkTheme: "서버 기본 다크 테마" instanceDefaultThemeDescription: "객체 형식의 테마 코드를 입력해 주세요." mutePeriod: "뮤트할 기간" -period: "투표 기한" +period: "기간" indefinitely: "무기한" tenMinutes: "10분" oneHour: "1시간" diff --git a/locales/zh-TW.yml b/locales/zh-TW.yml index 04c14b2c65..ef0baeef50 100644 --- a/locales/zh-TW.yml +++ b/locales/zh-TW.yml @@ -1060,6 +1060,8 @@ cancelReactionConfirm: "要取消做出的反應嗎?" changeReactionConfirm: "要變更做出的反應嗎?" later: "稍後再說" goToMisskey: "往Misskey" +additionalEmojiDictionary: "表情符號的附加辭典" +installed: "已安裝" _initialAccountSetting: accountCreated: "帳戶已建立完成!" letsStartAccountSetup: "來進行帳戶的初始設定吧。" diff --git a/package.json b/package.json index 81029514c3..8cf7d37f63 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "misskey", - "version": "13.13.0-beta.7", + "version": "13.13.0", "codename": "nasubi", "repository": { "type": "git", diff --git a/packages/backend/src/server/api/endpoints/i/update.ts b/packages/backend/src/server/api/endpoints/i/update.ts index d10f690a32..8f5e6177c2 100644 --- a/packages/backend/src/server/api/endpoints/i/update.ts +++ b/packages/backend/src/server/api/endpoints/i/update.ts @@ -146,7 +146,7 @@ export const paramDef = { alwaysMarkNsfw: { type: 'boolean' }, autoSensitive: { type: 'boolean' }, ffVisibility: { type: 'string', enum: ['public', 'followers', 'private'] }, - pinnedPageId: { type: 'string', format: 'misskey:id' }, + pinnedPageId: { type: 'string', format: 'misskey:id', nullable: true }, mutedWords: { type: 'array' }, mutedInstances: { type: 'array', items: { type: 'string', diff --git a/packages/backend/src/server/api/endpoints/meta.ts b/packages/backend/src/server/api/endpoints/meta.ts index 53d724a9dd..fe68467a64 100644 --- a/packages/backend/src/server/api/endpoints/meta.ts +++ b/packages/backend/src/server/api/endpoints/meta.ts @@ -1,6 +1,6 @@ import { IsNull, LessThanOrEqual, MoreThan } from 'typeorm'; import { Inject, Injectable } from '@nestjs/common'; -import * as JSON5 from 'json5'; +import JSON5 from 'json5'; import type { AdsRepository, UsersRepository } from '@/models/index.js'; import { MAX_NOTE_TEXT_LENGTH } from '@/const.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; diff --git a/packages/backend/src/server/web/boot.js b/packages/backend/src/server/web/boot.js index 825f02e835..38ae8ad2e5 100644 --- a/packages/backend/src/server/web/boot.js +++ b/packages/backend/src/server/web/boot.js @@ -116,9 +116,9 @@ } } } - const colorSchema = localStorage.getItem('colorSchema'); - if (colorSchema) { - document.documentElement.style.setProperty('color-schema', colorSchema); + const colorScheme = localStorage.getItem('colorScheme'); + if (colorScheme) { + document.documentElement.style.setProperty('color-scheme', colorScheme); } //#endregion diff --git a/packages/frontend/src/components/MkUserPopup.vue b/packages/frontend/src/components/MkUserPopup.vue index c9ff02cc76..c3b777a12e 100644 --- a/packages/frontend/src/components/MkUserPopup.vue +++ b/packages/frontend/src/components/MkUserPopup.vue @@ -22,7 +22,7 @@
- +
{{ i18n.ts.noAccountDescription }}
@@ -192,6 +192,13 @@ onMounted(() => { border-bottom: solid 1px var(--divider); } +.mfm { + display: -webkit-box; + -webkit-line-clamp: 5; + -webkit-box-orient: vertical; + overflow: hidden; +} + .status { padding: 16px 26px 16px 26px; } diff --git a/packages/frontend/src/components/global/MkCondensedLine.vue b/packages/frontend/src/components/global/MkCondensedLine.vue index 1d46ff1ec9..4b2e8e4750 100644 --- a/packages/frontend/src/components/global/MkCondensedLine.vue +++ b/packages/frontend/src/components/global/MkCondensedLine.vue @@ -13,13 +13,20 @@ interface Props { const contentSymbol = Symbol(); const observer = new ResizeObserver((entries) => { + const results: { + container: HTMLSpanElement; + transform: string; + }[] = []; for (const entry of entries) { const content = (entry.target[contentSymbol] ? entry.target : entry.target.firstElementChild) as HTMLSpanElement; const props: Required = content[contentSymbol]; const container = content.parentElement as HTMLSpanElement; const contentWidth = content.getBoundingClientRect().width; const containerWidth = container.getBoundingClientRect().width; - container.style.transform = `scaleX(${Math.max(props.minScale, Math.min(1, containerWidth / contentWidth))})`; + results.push({ container, transform: `scaleX(${Math.max(props.minScale, Math.min(1, containerWidth / contentWidth))})` }); + } + for (const result of results) { + result.container.style.transform = result.transform; } }); diff --git a/packages/frontend/src/local-storage.ts b/packages/frontend/src/local-storage.ts index 242f456f1c..6518b0f3b2 100644 --- a/packages/frontend/src/local-storage.ts +++ b/packages/frontend/src/local-storage.ts @@ -13,7 +13,7 @@ type Keys = 'hashtags' | 'wallpaper' | 'theme' | - 'colorSchema' | + 'colorScheme' | 'useSystemFont' | 'fontSize' | 'ui' | diff --git a/packages/frontend/src/scripts/theme.ts b/packages/frontend/src/scripts/theme.ts index 28284c7bcf..f2e8253565 100644 --- a/packages/frontend/src/scripts/theme.ts +++ b/packages/frontend/src/scripts/theme.ts @@ -60,7 +60,7 @@ export function applyTheme(theme: Theme, persist = true) { document.documentElement.classList.remove('_themeChanging_'); }, 1000); - const colorSchema = theme.base === 'dark' ? 'dark' : 'light'; + const colorScheme = theme.base === 'dark' ? 'dark' : 'light'; // Deep copy const _theme = deepClone(theme); @@ -83,11 +83,11 @@ export function applyTheme(theme: Theme, persist = true) { document.documentElement.style.setProperty(`--${k}`, v.toString()); } - document.documentElement.style.setProperty('color-schema', colorSchema); + document.documentElement.style.setProperty('color-scheme', colorScheme); if (persist) { miLocalStorage.setItem('theme', JSON.stringify(props)); - miLocalStorage.setItem('colorSchema', colorSchema); + miLocalStorage.setItem('colorScheme', colorScheme); } // 色計算など再度行えるようにクライアント全体に通知