summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md11
-rw-r--r--locales/de-DE.yml2
-rw-r--r--locales/en-US.yml2
-rw-r--r--locales/sk-SK.yml2
-rw-r--r--package.json2
-rw-r--r--packages/backend/src/server/api/endpoints/stats.ts6
-rw-r--r--packages/client/src/components/ui/tooltip.vue12
-rw-r--r--packages/client/src/init.ts3
-rw-r--r--packages/client/src/scripts/check-word-mute.ts6
-rw-r--r--packages/client/src/scripts/theme.ts2
-rw-r--r--packages/client/src/themes/d-cherry.json520
-rw-r--r--packages/client/src/themes/l-cherry.json521
-rw-r--r--packages/client/src/ui/_common_/sidebar.vue2
-rw-r--r--packages/client/src/ui/deck.vue2
-rw-r--r--packages/client/src/ui/universal.vue5
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 {