Merge remote-branch 'misskey/develop'
This commit is contained in:
commit
21da7746be
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -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',
|
||||||
|
|
||||||
|
|
|
@ -908,7 +908,7 @@ instanceDefaultLightTheme: "서버 기본 라이트 테마"
|
||||||
instanceDefaultDarkTheme: "서버 기본 다크 테마"
|
instanceDefaultDarkTheme: "서버 기본 다크 테마"
|
||||||
instanceDefaultThemeDescription: "객체 형식의 테마 코드를 입력해 주세요."
|
instanceDefaultThemeDescription: "객체 형식의 테마 코드를 입력해 주세요."
|
||||||
mutePeriod: "뮤트할 기간"
|
mutePeriod: "뮤트할 기간"
|
||||||
period: "투표 기한"
|
period: "기간"
|
||||||
indefinitely: "무기한"
|
indefinitely: "무기한"
|
||||||
tenMinutes: "10분"
|
tenMinutes: "10분"
|
||||||
oneHour: "1시간"
|
oneHour: "1시간"
|
||||||
|
|
|
@ -1074,6 +1074,8 @@ cancelReactionConfirm: "要取消做出的反應嗎?"
|
||||||
changeReactionConfirm: "要變更做出的反應嗎?"
|
changeReactionConfirm: "要變更做出的反應嗎?"
|
||||||
later: "稍後再說"
|
later: "稍後再說"
|
||||||
goToMisskey: "往CherryPick"
|
goToMisskey: "往CherryPick"
|
||||||
|
additionalEmojiDictionary: "表情符號的附加辭典"
|
||||||
|
installed: "已安裝"
|
||||||
_initialAccountSetting:
|
_initialAccountSetting:
|
||||||
accountCreated: "帳戶已建立完成!"
|
accountCreated: "帳戶已建立完成!"
|
||||||
letsStartAccountSetup: "來進行帳戶的初始設定吧。"
|
letsStartAccountSetup: "來進行帳戶的初始設定吧。"
|
||||||
|
|
|
@ -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',
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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>
|
||||||
|
|
Loading…
Reference in a new issue