diff options
| -rw-r--r-- | CHANGELOG.md | 11 | ||||
| -rw-r--r-- | locales/de-DE.yml | 2 | ||||
| -rw-r--r-- | locales/en-US.yml | 2 | ||||
| -rw-r--r-- | locales/sk-SK.yml | 2 | ||||
| -rw-r--r-- | package.json | 2 | ||||
| -rw-r--r-- | packages/backend/src/server/api/endpoints/stats.ts | 6 | ||||
| -rw-r--r-- | packages/client/src/components/ui/tooltip.vue | 12 | ||||
| -rw-r--r-- | packages/client/src/init.ts | 3 | ||||
| -rw-r--r-- | packages/client/src/scripts/check-word-mute.ts | 6 | ||||
| -rw-r--r-- | packages/client/src/scripts/theme.ts | 2 | ||||
| -rw-r--r-- | packages/client/src/themes/d-cherry.json5 | 20 | ||||
| -rw-r--r-- | packages/client/src/themes/l-cherry.json5 | 21 | ||||
| -rw-r--r-- | packages/client/src/ui/_common_/sidebar.vue | 2 | ||||
| -rw-r--r-- | packages/client/src/ui/deck.vue | 2 | ||||
| -rw-r--r-- | packages/client/src/ui/universal.vue | 5 |
15 files changed, 81 insertions, 17 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index bed70f9182..89f070909f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,17 @@ You should also include the user name that made the change. --> +## 12.107.0 (2022/02/12) + +### Improvements +- クライアント: テーマを追加 @syuilo + +### Bugfixes +- API: stats APIで内部エラーが発生する問題を修正 @syuilo +- クライアント: ソフトミュートですべてがマッチしてしまう場合があるのを修正 @tamaina +- クライアント: デバイスのスクリーンのセーフエリアを考慮するように @syuilo +- クライアント: 一部環境でサイドバーの投稿ボタンが表示されない問題を修正 @syuilo + ## 12.106.3 (2022/02/11) ### Improvements diff --git a/locales/de-DE.yml b/locales/de-DE.yml index bd93e53012..c5bf407407 100644 --- a/locales/de-DE.yml +++ b/locales/de-DE.yml @@ -831,6 +831,8 @@ smartphone: "Smartphone" tablet: "Tablet" auto: "Automatisch" themeColor: "Instanzfarbe" +size: "Größe" +numberOfColumn: "Spaltenanzahl" _emailUnavailable: used: "Diese Email-Adresse wird bereits verwendet" format: "Das Format dieser Email-Adresse ist ungültig" diff --git a/locales/en-US.yml b/locales/en-US.yml index 5f7bc2a533..53434d7e60 100644 --- a/locales/en-US.yml +++ b/locales/en-US.yml @@ -829,6 +829,8 @@ smartphone: "Smartphone" tablet: "Tablet" auto: "Auto" themeColor: "Theme Color" +size: "Size" +numberOfColumn: "Number of columns" _emailUnavailable: used: "This email address is already being used" format: "The format of this email address is invalid" diff --git a/locales/sk-SK.yml b/locales/sk-SK.yml index 643770ca31..a501591a8b 100644 --- a/locales/sk-SK.yml +++ b/locales/sk-SK.yml @@ -830,6 +830,8 @@ smartphone: "Smartfón" tablet: "Tablet" auto: "Automaticky" themeColor: "Farba témy" +size: "Veľkosť" +numberOfColumn: "Počet stĺpcov" _emailUnavailable: used: "Táto emailová adresa sa už používa" format: "Formát emailovej adresy je nesprávny" diff --git a/package.json b/package.json index 993a169397..621b590037 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "misskey", - "version": "12.106.3", + "version": "12.107.0", "codename": "indigo", "repository": { "type": "git", diff --git a/packages/backend/src/server/api/endpoints/stats.ts b/packages/backend/src/server/api/endpoints/stats.ts index 17281888a6..82b0bb3291 100644 --- a/packages/backend/src/server/api/endpoints/stats.ts +++ b/packages/backend/src/server/api/endpoints/stats.ts @@ -1,6 +1,6 @@ import define from '../define'; -import { NoteReactions, Notes, Users } from '@/models/index'; -import { federationChart, driveChart } from '@/services/chart/index'; +import { Instances, NoteReactions, Notes, Users } from '@/models/index'; +import { } from '@/services/chart/index'; export const meta = { requireCredential: false, @@ -63,7 +63,7 @@ export default define(meta, async () => { Users.count({ where: { host: null }, cache: 3600000 }), NoteReactions.count({ cache: 3600000 }), // 1 hour //NoteReactions.count({ where: { userHost: null }, cache: 3600000 }), - federationChart.getChart('hour', 1, null).then(chart => chart.instance.total[0]), + Instances.count({ cache: 3600000 }), ]); return { diff --git a/packages/client/src/components/ui/tooltip.vue b/packages/client/src/components/ui/tooltip.vue index 3ccd1b7316..ee1909554e 100644 --- a/packages/client/src/components/ui/tooltip.vue +++ b/packages/client/src/components/ui/tooltip.vue @@ -180,12 +180,12 @@ const setPosition = () => { el.value.style.top = top + 'px'; }; +let loopHandler; + onMounted(() => { nextTick(() => { setPosition(); - let loopHandler; - const loop = () => { loopHandler = window.requestAnimationFrame(() => { setPosition(); @@ -194,12 +194,12 @@ onMounted(() => { }; loop(); - - onUnmounted(() => { - window.cancelAnimationFrame(loopHandler); - }); }); }); + +onUnmounted(() => { + window.cancelAnimationFrame(loopHandler); +}); </script> <style lang="scss" scoped> diff --git a/packages/client/src/init.ts b/packages/client/src/init.ts index b7fc8b1d1e..113324d494 100644 --- a/packages/client/src/init.ts +++ b/packages/client/src/init.ts @@ -95,8 +95,7 @@ window.addEventListener('resize', () => { if (['smartphone', 'tablet'].includes(deviceKind)) { const viewport = document.getElementsByName('viewport').item(0); viewport.setAttribute('content', - `${viewport.getAttribute('content')},minimum-scale=1,maximum-scale=1,user-scalable=no`); - document.head.appendChild(viewport); + `${viewport.getAttribute('content')}, minimum-scale=1, maximum-scale=1, user-scalable=no, viewport-fit=cover`); } //#region Set lang attr diff --git a/packages/client/src/scripts/check-word-mute.ts b/packages/client/src/scripts/check-word-mute.ts index 74e2581863..fa74c09939 100644 --- a/packages/client/src/scripts/check-word-mute.ts +++ b/packages/client/src/scripts/check-word-mute.ts @@ -7,7 +7,11 @@ export function checkWordMute(note: Record<string, any>, me: Record<string, any> const matched = mutedWords.some(filter => { if (Array.isArray(filter)) { - return filter.every(keyword => note.text!.includes(keyword)); + // Clean up + const filteredFilter = filter.filter(keyword => keyword !== ''); + if (filteredFilter.length === 0) return false; + + return filteredFilter.every(keyword => note.text!.includes(keyword)); } else { // represents RegExp const regexp = filter.match(/^\/(.+)\/(.*)$/); diff --git a/packages/client/src/scripts/theme.ts b/packages/client/src/scripts/theme.ts index 85c087331b..2001b135ca 100644 --- a/packages/client/src/scripts/theme.ts +++ b/packages/client/src/scripts/theme.ts @@ -20,6 +20,7 @@ export const builtinThemes = [ require('@/themes/l-apricot.json5'), require('@/themes/l-rainy.json5'), require('@/themes/l-vivid.json5'), + require('@/themes/l-cherry.json5'), require('@/themes/l-sushi.json5'), require('@/themes/d-dark.json5'), @@ -27,6 +28,7 @@ export const builtinThemes = [ require('@/themes/d-astro.json5'), require('@/themes/d-future.json5'), require('@/themes/d-botanical.json5'), + require('@/themes/d-cherry.json5'), require('@/themes/d-pumpkin.json5'), require('@/themes/d-black.json5'), ] as Theme[]; diff --git a/packages/client/src/themes/d-cherry.json5 b/packages/client/src/themes/d-cherry.json5 new file mode 100644 index 0000000000..a7e1ad1c80 --- /dev/null +++ b/packages/client/src/themes/d-cherry.json5 @@ -0,0 +1,20 @@ +{ + id: '679b3b87-a4e9-4789-8696-b56c15cc33b0', + + name: 'Mi Cherry Dark', + author: 'syuilo', + + base: 'dark', + + props: { + accent: 'rgb(255, 89, 117)', + bg: 'rgb(28, 28, 37)', + fg: 'rgb(236, 239, 244)', + panel: 'rgb(35, 35, 47)', + renote: '@accent', + link: '@accent', + mention: '@accent', + hashtag: '@accent', + divider: 'rgb(63, 63, 80)', + }, +} diff --git a/packages/client/src/themes/l-cherry.json5 b/packages/client/src/themes/l-cherry.json5 new file mode 100644 index 0000000000..5ad240241e --- /dev/null +++ b/packages/client/src/themes/l-cherry.json5 @@ -0,0 +1,21 @@ +{ + id: 'ac168876-f737-4074-a3fc-a370c732ef48', + + name: 'Mi Cherry Light', + author: 'syuilo', + + base: 'light', + + props: { + accent: 'rgb(219, 96, 114)', + bg: 'rgb(254, 248, 249)', + fg: 'rgb(152, 13, 26)', + panel: 'rgb(255, 255, 255)', + renote: '@accent', + link: 'rgb(156, 187, 5)', + mention: '@accent', + hashtag: '@accent', + divider: 'rgba(134, 51, 51, 0.1)', + inputBorderHover: 'rgb(238, 221, 222)', + }, +} diff --git a/packages/client/src/ui/_common_/sidebar.vue b/packages/client/src/ui/_common_/sidebar.vue index 94baacbee9..f33d8f899e 100644 --- a/packages/client/src/ui/_common_/sidebar.vue +++ b/packages/client/src/ui/_common_/sidebar.vue @@ -305,7 +305,7 @@ export default defineComponent({ &.post:before { width: calc(100% - 28px); - height: min-content; + height: auto; aspect-ratio: 1/1; border-radius: 100%; } diff --git a/packages/client/src/ui/deck.vue b/packages/client/src/ui/deck.vue index 9accc34a88..e4571d4091 100644 --- a/packages/client/src/ui/deck.vue +++ b/packages/client/src/ui/deck.vue @@ -276,7 +276,7 @@ export default defineComponent({ } > * { - font-size: 22px; + font-size: 20px; } &:disabled { diff --git a/packages/client/src/ui/universal.vue b/packages/client/src/ui/universal.vue index b0dfc5aadc..000fec9b40 100644 --- a/packages/client/src/ui/universal.vue +++ b/packages/client/src/ui/universal.vue @@ -340,13 +340,14 @@ const wallpaper = localStorage.getItem('wallpaper') != null; z-index: 1000; bottom: 0; left: 0; - padding: 16px; + padding: 16px 16px calc(env(safe-area-inset-bottom, 0px) + 16px) 16px; display: flex; width: 100%; box-sizing: border-box; -webkit-backdrop-filter: var(--blur, blur(32px)); backdrop-filter: var(--blur, blur(32px)); background-color: var(--header); + border-top: solid 0.5px var(--divider); > .button { position: relative; @@ -392,7 +393,7 @@ const wallpaper = localStorage.getItem('wallpaper') != null; } > * { - font-size: 22px; + font-size: 20px; } &:disabled { |