Merge remote-branch 'misskey/develop'

This commit is contained in:
NoriDev 2023-06-05 20:51:42 +09:00
commit 21da7746be
8 changed files with 23 additions and 12 deletions

View file

@ -48,6 +48,7 @@
- Fix: 無効化されたアンテナにアクセスがあった際に再度有効化するように - Fix: 無効化されたアンテナにアクセスがあった際に再度有効化するように
- Fix: お知らせの画像URLを空にできない問題を修正 - Fix: お知らせの画像URLを空にできない問題を修正
- Fix: i/notificationsのsinceIdが機能しない問題を修正 - Fix: i/notificationsのsinceIdが機能しない問題を修正
- Fix: pageのピン留めを解除することができない問題を修正
## 13.12.2 ## 13.12.2

View file

@ -170,40 +170,32 @@ describe('After user signed in', () => {
cy.get('[data-cy-user-setup-user-description] textarea').type('ほげ'); cy.get('[data-cy-user-setup-user-description] textarea').type('ほげ');
// TODO: アイコン設定テスト // TODO: アイコン設定テスト
cy.get('[data-cy-user-setup-back]').click();
cy.get('[data-cy-user-setup-continue]').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-continue]').click();
// フォントサイズ設定 // フォントサイズ設定
cy.get('[data-cy-user-setup-back]').click();
cy.get('[data-cy-user-setup-continue]').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-continue]').click();
// MFMとアニメーション画像設定 // MFMとアニメーション画像設定
cy.get('[data-cy-user-setup-back]').click();
cy.get('[data-cy-user-setup-continue]').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-continue]').click();
// プッシュ通知設定はスキップ // プッシュ通知設定はスキップ
cy.get('[data-cy-user-setup-back]').click();
cy.get('[data-cy-user-setup-continue]').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-continue]').click();
}); });
}); });

View file

@ -21,6 +21,8 @@ import './commands'
Cypress.on('uncaught:exception', (err, runnable) => { Cypress.on('uncaught:exception', (err, runnable) => {
if ([ if ([
'The source image cannot be decoded',
// Chrome // Chrome
'ResizeObserver loop limit exceeded', 'ResizeObserver loop limit exceeded',

View file

@ -908,7 +908,7 @@ instanceDefaultLightTheme: "서버 기본 라이트 테마"
instanceDefaultDarkTheme: "서버 기본 다크 테마" instanceDefaultDarkTheme: "서버 기본 다크 테마"
instanceDefaultThemeDescription: "객체 형식의 테마 코드를 입력해 주세요." instanceDefaultThemeDescription: "객체 형식의 테마 코드를 입력해 주세요."
mutePeriod: "뮤트할 기간" mutePeriod: "뮤트할 기간"
period: "투표 기한" period: "기간"
indefinitely: "무기한" indefinitely: "무기한"
tenMinutes: "10분" tenMinutes: "10분"
oneHour: "1시간" oneHour: "1시간"

View file

@ -1074,6 +1074,8 @@ cancelReactionConfirm: "要取消做出的反應嗎?"
changeReactionConfirm: "要變更做出的反應嗎?" changeReactionConfirm: "要變更做出的反應嗎?"
later: "稍後再說" later: "稍後再說"
goToMisskey: "往CherryPick" goToMisskey: "往CherryPick"
additionalEmojiDictionary: "表情符號的附加辭典"
installed: "已安裝"
_initialAccountSetting: _initialAccountSetting:
accountCreated: "帳戶已建立完成!" accountCreated: "帳戶已建立完成!"
letsStartAccountSetup: "來進行帳戶的初始設定吧。" letsStartAccountSetup: "來進行帳戶的初始設定吧。"

View file

@ -146,7 +146,7 @@ export const paramDef = {
alwaysMarkNsfw: { type: 'boolean' }, alwaysMarkNsfw: { type: 'boolean' },
autoSensitive: { type: 'boolean' }, autoSensitive: { type: 'boolean' },
ffVisibility: { type: 'string', enum: ['public', 'followers', 'private'] }, ffVisibility: { type: 'string', enum: ['public', 'followers', 'private'] },
pinnedPageId: { type: 'string', format: 'misskey:id' }, pinnedPageId: { type: 'string', format: 'misskey:id', nullable: true },
mutedWords: { type: 'array' }, mutedWords: { type: 'array' },
mutedInstances: { type: 'array', items: { mutedInstances: { type: 'array', items: {
type: 'string', type: 'string',

View file

@ -22,7 +22,7 @@
<div :class="$style.username"><MkAcct :user="user"/></div> <div :class="$style.username"><MkAcct :user="user"/></div>
</div> </div>
<div :class="$style.description"> <div :class="$style.description">
<Mfm v-if="user.description" :text="user.description" :author="user" :i="$i"/> <Mfm v-if="user.description" :class="$style.mfm" :text="user.description" :author="user" :i="$i"/>
<div v-else style="opacity: 0.7;">{{ i18n.ts.noAccountDescription }}</div> <div v-else style="opacity: 0.7;">{{ i18n.ts.noAccountDescription }}</div>
</div> </div>
<div :class="$style.status"> <div :class="$style.status">
@ -192,6 +192,13 @@ onMounted(() => {
border-bottom: solid 1px var(--divider); border-bottom: solid 1px var(--divider);
} }
.mfm {
display: -webkit-box;
-webkit-line-clamp: 5;
-webkit-box-orient: vertical;
overflow: hidden;
}
.status { .status {
padding: 16px 26px 16px 26px; padding: 16px 26px 16px 26px;
} }

View file

@ -13,13 +13,20 @@ interface Props {
const contentSymbol = Symbol(); const contentSymbol = Symbol();
const observer = new ResizeObserver((entries) => { const observer = new ResizeObserver((entries) => {
const results: {
container: HTMLSpanElement;
transform: string;
}[] = [];
for (const entry of entries) { for (const entry of entries) {
const content = (entry.target[contentSymbol] ? entry.target : entry.target.firstElementChild) as HTMLSpanElement; const content = (entry.target[contentSymbol] ? entry.target : entry.target.firstElementChild) as HTMLSpanElement;
const props: Required<Props> = content[contentSymbol]; const props: Required<Props> = content[contentSymbol];
const container = content.parentElement as HTMLSpanElement; const container = content.parentElement as HTMLSpanElement;
const contentWidth = content.getBoundingClientRect().width; const contentWidth = content.getBoundingClientRect().width;
const containerWidth = container.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;
} }
}); });
</script> </script>