summaryrefslogtreecommitdiff
path: root/packages/frontend/src
diff options
context:
space:
mode:
authorAcid Chicken (硫酸鶏) <root@acid-chicken.com>2023-05-07 19:08:43 +0900
committerAcid Chicken (硫酸鶏) <root@acid-chicken.com>2023-05-07 19:08:43 +0900
commit901657373609814804a1229bbeb62589722ce181 (patch)
tree689b8bb7229e13a639f2e18ab61a26ec4a91d8b1 /packages/frontend/src
parent13.12.0-beta.5 (diff)
downloadmisskey-901657373609814804a1229bbeb62589722ce181.tar.gz
misskey-901657373609814804a1229bbeb62589722ce181.tar.bz2
misskey-901657373609814804a1229bbeb62589722ce181.zip
chore: min-scale for MkAcct
Diffstat (limited to 'packages/frontend/src')
-rw-r--r--packages/frontend/src/components/global/MkAcct.stories.impl.ts18
-rw-r--r--packages/frontend/src/components/global/MkAcct.vue2
-rw-r--r--packages/frontend/src/components/global/MkCondensedLine.vue13
3 files changed, 29 insertions, 4 deletions
diff --git a/packages/frontend/src/components/global/MkAcct.stories.impl.ts b/packages/frontend/src/components/global/MkAcct.stories.impl.ts
index 68202bb705..9d5fd3947d 100644
--- a/packages/frontend/src/components/global/MkAcct.stories.impl.ts
+++ b/packages/frontend/src/components/global/MkAcct.stories.impl.ts
@@ -47,8 +47,24 @@ export const Long = {
...Default.args,
user: {
...userDetailed(),
+ username: 'the_quick_brown_fox_jumped_over_the_lazy_dog',
+ host: 'misskey.example',
+ },
+ },
+ decorators: [
+ () => ({
+ template: '<div style="width: 360px;"><story/></div>',
+ }),
+ ],
+} satisfies StoryObj<typeof MkAcct>;
+export const VeryLong = {
+ ...Default,
+ args: {
+ ...Default.args,
+ user: {
+ ...userDetailed(),
username: '2c7cc62a697ea3a7826521f3fd34f0cb273693cbe5e9310f35449f43622a5cdc',
- host: 'nostr.example',
+ host: 'the.quick.brown.fox.jumped.over.the.lazy.dog.very.long.hostname.nostr.example',
},
},
decorators: [
diff --git a/packages/frontend/src/components/global/MkAcct.vue b/packages/frontend/src/components/global/MkAcct.vue
index 3b0715a23c..59358aef70 100644
--- a/packages/frontend/src/components/global/MkAcct.vue
+++ b/packages/frontend/src/components/global/MkAcct.vue
@@ -1,5 +1,5 @@
<template>
-<MkCondensedLine v-if="defaultStore.state.enableCondensedLineForAcct">
+<MkCondensedLine v-if="defaultStore.state.enableCondensedLineForAcct" :min-scale="2 / 3">
<span>@{{ user.username }}</span>
<span v-if="user.host || detail || defaultStore.state.showFullAcct" style="opacity: 0.5;">@{{ user.host || host }}</span>
</MkCondensedLine>
diff --git a/packages/frontend/src/components/global/MkCondensedLine.vue b/packages/frontend/src/components/global/MkCondensedLine.vue
index e3c0a866b7..40c7766a2a 100644
--- a/packages/frontend/src/components/global/MkCondensedLine.vue
+++ b/packages/frontend/src/components/global/MkCondensedLine.vue
@@ -7,14 +7,19 @@
</template>
<script lang="ts">
+interface Props {
+ readonly minScale?: number;
+}
+
const contentSymbol = Symbol();
const observer = new ResizeObserver((entries) => {
for (const entry of entries) {
const content = (entry.target[contentSymbol] ? entry.target : entry.target.firstElementChild) as HTMLSpanElement;
+ const props: Required<Props> = content[contentSymbol];
const container = content.parentElement as HTMLSpanElement;
const contentWidth = content.getBoundingClientRect().width;
const containerWidth = container.getBoundingClientRect().width;
- container.style.transform = `scaleX(${Math.min(1, containerWidth / contentWidth)})`;
+ container.style.transform = `scaleX(${Math.max(props.minScale, Math.min(1, containerWidth / contentWidth))})`;
}
});
</script>
@@ -22,6 +27,10 @@ const observer = new ResizeObserver((entries) => {
<script setup lang="ts">
import { ref, watch } from 'vue';
+const props = withDefaults(defineProps<Props>(), {
+ minScale: 0,
+});
+
const content = ref<HTMLSpanElement>();
watch(content, (value, oldValue) => {
@@ -33,7 +42,7 @@ watch(content, (value, oldValue) => {
}
}
if (value) {
- value[contentSymbol] = contentSymbol;
+ value[contentSymbol] = props;
observer.observe(value);
if (value.parentElement) {
observer.observe(value.parentElement);