remove v-size directive
This commit is contained in:
parent
9b595b93f8
commit
13677ff2b0
18 changed files with 19 additions and 489 deletions
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div v-size="{ max: [380] }" class="ukygtjoj _panel" :class="{ naked, thin, hideHeader: !showHeader, scrollable, closed: !showBody }">
|
<div class="ukygtjoj _panel" :class="{ naked, thin, hideHeader: !showHeader, scrollable, closed: !showBody }">
|
||||||
<header v-if="showHeader" ref="header">
|
<header v-if="showHeader" ref="header">
|
||||||
<div class="title"><slot name="header"></slot></div>
|
<div class="title"><slot name="header"></slot></div>
|
||||||
<div class="sub">
|
<div class="sub">
|
||||||
|
@ -233,7 +233,7 @@ export default defineComponent({
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.max-width_380px, &.thin {
|
&.thin {
|
||||||
> header {
|
> header {
|
||||||
> .title {
|
> .title {
|
||||||
padding: 8px 10px;
|
padding: 8px 10px;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div v-size="{ max: [500] }" class="ssazuxis">
|
<div class="ssazuxis">
|
||||||
<header class="_button" :style="{ background: bg }" @click="showBody = !showBody">
|
<header class="_button" :style="{ background: bg }" @click="showBody = !showBody">
|
||||||
<div class="title"><slot name="header"></slot></div>
|
<div class="title"><slot name="header"></slot></div>
|
||||||
<div class="divider"></div>
|
<div class="divider"></div>
|
||||||
|
@ -147,14 +147,6 @@ export default defineComponent({
|
||||||
padding: 12px 0 12px 16px;
|
padding: 12px 0 12px 16px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.max-width_500px {
|
|
||||||
> header {
|
|
||||||
> .title {
|
|
||||||
padding: 8px 10px 8px 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@container (max-width: 500px) {
|
@container (max-width: 500px) {
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
v-show="!isDeleted"
|
v-show="!isDeleted"
|
||||||
ref="el"
|
ref="el"
|
||||||
v-hotkey="keymap"
|
v-hotkey="keymap"
|
||||||
v-size="{ max: [500, 450, 350, 300] }"
|
|
||||||
class="tkcbzcuz"
|
class="tkcbzcuz"
|
||||||
:tabindex="!isDeleted ? '-1' : null"
|
:tabindex="!isDeleted ? '-1' : null"
|
||||||
:class="{ renote: isRenote }"
|
:class="{ renote: isRenote }"
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
v-show="!isDeleted"
|
v-show="!isDeleted"
|
||||||
ref="el"
|
ref="el"
|
||||||
v-hotkey="keymap"
|
v-hotkey="keymap"
|
||||||
v-size="{ max: [500, 450, 350, 300] }"
|
|
||||||
class="lxwezrsl _block"
|
class="lxwezrsl _block"
|
||||||
:tabindex="!isDeleted ? '-1' : null"
|
:tabindex="!isDeleted ? '-1' : null"
|
||||||
:class="{ renote: isRenote }"
|
:class="{ renote: isRenote }"
|
||||||
|
@ -543,64 +542,6 @@ if (appearNote.replyId) {
|
||||||
> .reply {
|
> .reply {
|
||||||
border-top: solid 0.5px var(--divider);
|
border-top: solid 0.5px var(--divider);
|
||||||
}
|
}
|
||||||
|
|
||||||
&.max-width_500px {
|
|
||||||
font-size: 0.9em;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.max-width_450px {
|
|
||||||
> .renote {
|
|
||||||
padding: 8px 16px 0 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
> .article {
|
|
||||||
padding: 16px;
|
|
||||||
|
|
||||||
> .header {
|
|
||||||
> .avatar {
|
|
||||||
width: 50px;
|
|
||||||
height: 50px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&.max-width_350px {
|
|
||||||
> .article {
|
|
||||||
> .main {
|
|
||||||
> .footer {
|
|
||||||
> .button {
|
|
||||||
&:not(:last-child) {
|
|
||||||
margin-right: 18px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&.max-width_300px {
|
|
||||||
font-size: 0.825em;
|
|
||||||
|
|
||||||
> .article {
|
|
||||||
> .header {
|
|
||||||
> .avatar {
|
|
||||||
width: 50px;
|
|
||||||
height: 50px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
> .main {
|
|
||||||
> .footer {
|
|
||||||
> .button {
|
|
||||||
&:not(:last-child) {
|
|
||||||
margin-right: 12px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@container (max-width: 500px) {
|
@container (max-width: 500px) {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div v-size="{ min: [350, 500] }" class="fefdfafb">
|
<div class="fefdfafb">
|
||||||
<MkAvatar class="avatar" :user="$i"/>
|
<MkAvatar class="avatar" :user="$i"/>
|
||||||
<div class="main">
|
<div class="main">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
|
@ -30,22 +30,6 @@ const props = defineProps<{
|
||||||
overflow: clip;
|
overflow: clip;
|
||||||
font-size: 0.95em;
|
font-size: 0.95em;
|
||||||
|
|
||||||
&.min-width_350px {
|
|
||||||
> .avatar {
|
|
||||||
margin: 0 10px 0 0;
|
|
||||||
width: 44px;
|
|
||||||
height: 44px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&.min-width_500px {
|
|
||||||
> .avatar {
|
|
||||||
margin: 0 12px 0 0;
|
|
||||||
width: 48px;
|
|
||||||
height: 48px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
> .avatar {
|
> .avatar {
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
display: block;
|
display: block;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div v-size="{ min: [350, 500] }" class="yohlumlk">
|
<div class="yohlumlk">
|
||||||
<MkAvatar class="avatar" :user="note.user"/>
|
<MkAvatar class="avatar" :user="note.user"/>
|
||||||
<div class="main">
|
<div class="main">
|
||||||
<XNoteHeader class="header" :note="note" :mini="true"/>
|
<XNoteHeader class="header" :note="note" :mini="true"/>
|
||||||
|
@ -39,22 +39,6 @@ const showContent = $ref(false);
|
||||||
overflow: clip;
|
overflow: clip;
|
||||||
font-size: 0.95em;
|
font-size: 0.95em;
|
||||||
|
|
||||||
&.min-width_350px {
|
|
||||||
> .avatar {
|
|
||||||
margin: 0 10px 0 0;
|
|
||||||
width: 44px;
|
|
||||||
height: 44px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&.min-width_500px {
|
|
||||||
> .avatar {
|
|
||||||
margin: 0 12px 0 0;
|
|
||||||
width: 48px;
|
|
||||||
height: 48px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
> .avatar {
|
> .avatar {
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
display: block;
|
display: block;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div v-size="{ max: [450] }" class="wrpstxzv" :class="{ children: depth > 1 }">
|
<div class="wrpstxzv" :class="{ children: depth > 1 }">
|
||||||
<div class="main">
|
<div class="main">
|
||||||
<MkAvatar class="avatar" :user="note.user"/>
|
<MkAvatar class="avatar" :user="note.user"/>
|
||||||
<div class="body">
|
<div class="body">
|
||||||
|
@ -62,17 +62,9 @@ if (props.detail) {
|
||||||
padding: 16px 32px;
|
padding: 16px 32px;
|
||||||
font-size: 0.9em;
|
font-size: 0.9em;
|
||||||
|
|
||||||
&.max-width_450px {
|
|
||||||
padding: 14px 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.children {
|
&.children {
|
||||||
padding: 10px 0 0 16px;
|
padding: 10px 0 0 16px;
|
||||||
font-size: 1em;
|
font-size: 1em;
|
||||||
|
|
||||||
&.max-width_450px {
|
|
||||||
padding: 10px 0 0 8px;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
> .main {
|
> .main {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div ref="elRef" v-size="{ max: [500, 600] }" class="qglefbjs" :class="notification.type">
|
<div ref="elRef" class="qglefbjs" :class="notification.type">
|
||||||
<div class="head">
|
<div class="head">
|
||||||
<MkAvatar v-if="notification.type === 'pollEnded'" class="icon" :user="notification.note.user"/>
|
<MkAvatar v-if="notification.type === 'pollEnded'" class="icon" :user="notification.note.user"/>
|
||||||
<MkAvatar v-else-if="notification.user" class="icon" :user="notification.user"/>
|
<MkAvatar v-else-if="notification.user" class="icon" :user="notification.user"/>
|
||||||
|
@ -170,16 +170,6 @@ useTooltip(reactionRef, (showing) => {
|
||||||
display: flex;
|
display: flex;
|
||||||
contain: content;
|
contain: content;
|
||||||
|
|
||||||
&.max-width_600px {
|
|
||||||
padding: 16px;
|
|
||||||
font-size: 0.9em;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.max-width_500px {
|
|
||||||
padding: 12px;
|
|
||||||
font-size: 0.85em;
|
|
||||||
}
|
|
||||||
|
|
||||||
> .head {
|
> .head {
|
||||||
position: sticky;
|
position: sticky;
|
||||||
top: 0;
|
top: 0;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div
|
<div
|
||||||
v-size="{ max: [310, 500] }" class="gafaadew"
|
class="gafaadew"
|
||||||
:class="{ modal, _popup: modal }"
|
:class="{ modal, _popup: modal }"
|
||||||
@dragover.stop="onDragover"
|
@dragover.stop="onDragover"
|
||||||
@dragenter="onDragenter"
|
@dragenter="onDragenter"
|
||||||
|
@ -936,59 +936,6 @@ onMounted(() => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.max-width_500px {
|
|
||||||
> header {
|
|
||||||
height: 50px;
|
|
||||||
|
|
||||||
> .cancel {
|
|
||||||
width: 50px;
|
|
||||||
line-height: 50px;
|
|
||||||
}
|
|
||||||
|
|
||||||
> .right {
|
|
||||||
> .text-count {
|
|
||||||
line-height: 50px;
|
|
||||||
}
|
|
||||||
|
|
||||||
> .submit {
|
|
||||||
margin: 8px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
> .form {
|
|
||||||
> .to-specified {
|
|
||||||
padding: 6px 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
> .cw,
|
|
||||||
> .hashtags,
|
|
||||||
> .text {
|
|
||||||
padding: 0 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
> .text {
|
|
||||||
min-height: 80px;
|
|
||||||
}
|
|
||||||
|
|
||||||
> footer {
|
|
||||||
padding: 0 8px 8px 8px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&.max-width_310px {
|
|
||||||
> .form {
|
|
||||||
> footer {
|
|
||||||
> button {
|
|
||||||
font-size: 14px;
|
|
||||||
width: 44px;
|
|
||||||
height: 44px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@container (max-width: 500px) {
|
@container (max-width: 500px) {
|
||||||
|
|
|
@ -10,7 +10,7 @@ export default defineComponent({
|
||||||
render() {
|
render() {
|
||||||
const options = this.$slots.default();
|
const options = this.$slots.default();
|
||||||
|
|
||||||
return withDirectives(h('div', {
|
return h('div', {
|
||||||
class: 'pxhvhrfw',
|
class: 'pxhvhrfw',
|
||||||
}, options.map(option => withDirectives(h('button', {
|
}, options.map(option => withDirectives(h('button', {
|
||||||
class: ['_button', { active: this.modelValue === option.props.value }],
|
class: ['_button', { active: this.modelValue === option.props.value }],
|
||||||
|
@ -21,9 +21,7 @@ export default defineComponent({
|
||||||
},
|
},
|
||||||
}, option.children), [
|
}, option.children), [
|
||||||
[resolveDirective('click-anime')],
|
[resolveDirective('click-anime')],
|
||||||
]))), [
|
])));
|
||||||
[resolveDirective('size'), { max: [500] }],
|
|
||||||
]);
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -61,8 +59,10 @@ export default defineComponent({
|
||||||
margin-right: 6px;
|
margin-right: 6px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
&.max-width_500px {
|
@container (max-width: 500px) {
|
||||||
|
.pxhvhrfw {
|
||||||
font-size: 80%;
|
font-size: 80%;
|
||||||
|
|
||||||
> button {
|
> button {
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<div v-else-if="tweetId && tweetExpanded" ref="twitter" class="twitter">
|
<div v-else-if="tweetId && tweetExpanded" ref="twitter" class="twitter">
|
||||||
<iframe ref="tweet" scrolling="no" frameborder="no" :style="{ position: 'relative', width: '100%', height: `${tweetHeight}px` }" :src="`https://platform.twitter.com/embed/index.html?embedId=${embedId}&hideCard=false&hideThread=false&lang=en&theme=${$store.state.darkMode ? 'dark' : 'light'}&id=${tweetId}`"></iframe>
|
<iframe ref="tweet" scrolling="no" frameborder="no" :style="{ position: 'relative', width: '100%', height: `${tweetHeight}px` }" :src="`https://platform.twitter.com/embed/index.html?embedId=${embedId}&hideCard=false&hideThread=false&lang=en&theme=${$store.state.darkMode ? 'dark' : 'light'}&id=${tweetId}`"></iframe>
|
||||||
</div>
|
</div>
|
||||||
<div v-else v-size="{ max: [400, 350] }" class="mk-url-preview">
|
<div v-else class="mk-url-preview">
|
||||||
<transition :name="$store.state.animation ? 'zoom' : ''" mode="out-in">
|
<transition :name="$store.state.animation ? 'zoom' : ''" mode="out-in">
|
||||||
<component :is="self ? 'MkA' : 'a'" v-if="!fetching" class="link" :class="{ compact }" :[attr]="self ? url.substr(local.length) : url" rel="nofollow noopener" :target="target" :title="url">
|
<component :is="self ? 'MkA' : 'a'" v-if="!fetching" class="link" :class="{ compact }" :[attr]="self ? url.substr(local.length) : url" rel="nofollow noopener" :target="target" :title="url">
|
||||||
<div v-if="thumbnail" class="thumbnail" :style="`background-image: url('${thumbnail}')`">
|
<div v-if="thumbnail" class="thumbnail" :style="`background-image: url('${thumbnail}')`">
|
||||||
|
@ -154,69 +154,6 @@ onUnmounted(() => {
|
||||||
}
|
}
|
||||||
|
|
||||||
.mk-url-preview {
|
.mk-url-preview {
|
||||||
&.max-width_400px {
|
|
||||||
> .link {
|
|
||||||
font-size: 12px;
|
|
||||||
|
|
||||||
> .thumbnail {
|
|
||||||
height: 80px;
|
|
||||||
}
|
|
||||||
|
|
||||||
> article {
|
|
||||||
padding: 12px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&.max-width_350px {
|
|
||||||
> .link {
|
|
||||||
font-size: 10px;
|
|
||||||
|
|
||||||
> .thumbnail {
|
|
||||||
height: 70px;
|
|
||||||
}
|
|
||||||
|
|
||||||
> article {
|
|
||||||
padding: 8px;
|
|
||||||
|
|
||||||
> header {
|
|
||||||
margin-bottom: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
> footer {
|
|
||||||
margin-top: 4px;
|
|
||||||
|
|
||||||
> img {
|
|
||||||
width: 12px;
|
|
||||||
height: 12px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&.compact {
|
|
||||||
> .thumbnail {
|
|
||||||
position: absolute;
|
|
||||||
width: 56px;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
> article {
|
|
||||||
left: 56px;
|
|
||||||
width: calc(100% - 56px);
|
|
||||||
padding: 4px;
|
|
||||||
|
|
||||||
> header {
|
|
||||||
margin-bottom: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
> footer {
|
|
||||||
margin-top: 2px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
> .link {
|
> .link {
|
||||||
position: relative;
|
position: relative;
|
||||||
display: block;
|
display: block;
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
import { App } from 'vue';
|
import { App } from 'vue';
|
||||||
|
|
||||||
import userPreview from './user-preview';
|
import userPreview from './user-preview';
|
||||||
import size from './size';
|
|
||||||
import getSize from './get-size';
|
import getSize from './get-size';
|
||||||
import ripple from './ripple';
|
import ripple from './ripple';
|
||||||
import tooltip from './tooltip';
|
import tooltip from './tooltip';
|
||||||
|
@ -15,7 +14,6 @@ import adaptiveBorder from './adaptive-border';
|
||||||
export default function(app: App) {
|
export default function(app: App) {
|
||||||
app.directive('userPreview', userPreview);
|
app.directive('userPreview', userPreview);
|
||||||
app.directive('user-preview', userPreview);
|
app.directive('user-preview', userPreview);
|
||||||
app.directive('size', size);
|
|
||||||
app.directive('get-size', getSize);
|
app.directive('get-size', getSize);
|
||||||
app.directive('ripple', ripple);
|
app.directive('ripple', ripple);
|
||||||
app.directive('tooltip', tooltip);
|
app.directive('tooltip', tooltip);
|
||||||
|
|
|
@ -1,123 +0,0 @@
|
||||||
import { Directive } from 'vue';
|
|
||||||
|
|
||||||
type Value = { max?: number[]; min?: number[]; };
|
|
||||||
|
|
||||||
//const observers = new Map<Element, ResizeObserver>();
|
|
||||||
const mountings = new Map<Element, {
|
|
||||||
value: Value;
|
|
||||||
resize: ResizeObserver;
|
|
||||||
intersection?: IntersectionObserver;
|
|
||||||
previousWidth: number;
|
|
||||||
twoPreviousWidth: number;
|
|
||||||
}>();
|
|
||||||
|
|
||||||
type ClassOrder = {
|
|
||||||
add: string[];
|
|
||||||
remove: string[];
|
|
||||||
};
|
|
||||||
|
|
||||||
const isContainerQueriesSupported = ('container' in document.documentElement.style);
|
|
||||||
|
|
||||||
const cache = new Map<string, ClassOrder>();
|
|
||||||
|
|
||||||
function getClassOrder(width: number, queue: Value): ClassOrder {
|
|
||||||
const getMaxClass = (v: number) => `max-width_${v}px`;
|
|
||||||
const getMinClass = (v: number) => `min-width_${v}px`;
|
|
||||||
|
|
||||||
return {
|
|
||||||
add: [
|
|
||||||
...(queue.max ? queue.max.filter(v => width <= v).map(getMaxClass) : []),
|
|
||||||
...(queue.min ? queue.min.filter(v => width >= v).map(getMinClass) : []),
|
|
||||||
],
|
|
||||||
remove: [
|
|
||||||
...(queue.max ? queue.max.filter(v => width > v).map(getMaxClass) : []),
|
|
||||||
...(queue.min ? queue.min.filter(v => width < v).map(getMinClass) : []),
|
|
||||||
],
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
function applyClassOrder(el: Element, order: ClassOrder) {
|
|
||||||
el.classList.add(...order.add);
|
|
||||||
el.classList.remove(...order.remove);
|
|
||||||
}
|
|
||||||
|
|
||||||
function getOrderName(width: number, queue: Value): string {
|
|
||||||
return `${width}|${queue.max ? queue.max.join(',') : ''}|${queue.min ? queue.min.join(',') : ''}`;
|
|
||||||
}
|
|
||||||
|
|
||||||
function calc(el: Element) {
|
|
||||||
const info = mountings.get(el);
|
|
||||||
const width = el.clientWidth;
|
|
||||||
|
|
||||||
if (!info || info.previousWidth === width) return;
|
|
||||||
|
|
||||||
// アクティベート前などでsrcが描画されていない場合
|
|
||||||
if (!width) {
|
|
||||||
// IntersectionObserverで表示検出する
|
|
||||||
if (!info.intersection) {
|
|
||||||
info.intersection = new IntersectionObserver(entries => {
|
|
||||||
if (entries.some(entry => entry.isIntersecting)) calc(el);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
info.intersection.observe(el);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (info.intersection) {
|
|
||||||
info.intersection.disconnect();
|
|
||||||
delete info.intersection;
|
|
||||||
}
|
|
||||||
|
|
||||||
mountings.set(el, { ...info, ...{ previousWidth: width, twoPreviousWidth: info.previousWidth }});
|
|
||||||
|
|
||||||
// Prevent infinite resizing
|
|
||||||
// https://github.com/misskey-dev/misskey/issues/9076
|
|
||||||
if (info.twoPreviousWidth === width) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const cached = cache.get(getOrderName(width, info.value));
|
|
||||||
if (cached) {
|
|
||||||
applyClassOrder(el, cached);
|
|
||||||
} else {
|
|
||||||
const order = getClassOrder(width, info.value);
|
|
||||||
cache.set(getOrderName(width, info.value), order);
|
|
||||||
applyClassOrder(el, order);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export default {
|
|
||||||
mounted(src, binding, vn) {
|
|
||||||
if (isContainerQueriesSupported) return;
|
|
||||||
|
|
||||||
const resize = new ResizeObserver((entries, observer) => {
|
|
||||||
calc(src);
|
|
||||||
});
|
|
||||||
|
|
||||||
mountings.set(src, {
|
|
||||||
value: binding.value,
|
|
||||||
resize,
|
|
||||||
previousWidth: 0,
|
|
||||||
twoPreviousWidth: 0,
|
|
||||||
});
|
|
||||||
|
|
||||||
calc(src);
|
|
||||||
resize.observe(src);
|
|
||||||
},
|
|
||||||
|
|
||||||
updated(src, binding, vn) {
|
|
||||||
if (isContainerQueriesSupported) return;
|
|
||||||
|
|
||||||
mountings.set(src, Object.assign({}, mountings.get(src), { value: binding.value }));
|
|
||||||
calc(src);
|
|
||||||
},
|
|
||||||
|
|
||||||
unmounted(src, binding, vn) {
|
|
||||||
if (isContainerQueriesSupported) return;
|
|
||||||
|
|
||||||
const info = mountings.get(src);
|
|
||||||
if (!info) return;
|
|
||||||
info.resize.disconnect();
|
|
||||||
if (info.intersection) info.intersection.disconnect();
|
|
||||||
mountings.delete(src);
|
|
||||||
},
|
|
||||||
} as Directive<Element, Value>;
|
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<MkStickyContainer>
|
<MkStickyContainer>
|
||||||
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
||||||
<div ref="rootEl" v-hotkey.global="keymap" v-size="{ min: [800] }" class="tqmomfks">
|
<div ref="rootEl" v-hotkey.global="keymap" class="tqmomfks">
|
||||||
<div v-if="queue > 0" class="new"><button class="_buttonPrimary" @click="top()">{{ $ts.newNoteRecived }}</button></div>
|
<div v-if="queue > 0" class="new"><button class="_buttonPrimary" @click="top()">{{ $ts.newNoteRecived }}</button></div>
|
||||||
<div class="tl _block">
|
<div class="tl _block">
|
||||||
<XTimeline
|
<XTimeline
|
||||||
|
@ -112,11 +112,6 @@ definePageMetadata(computed(() => antenna ? {
|
||||||
border-radius: var(--radius);
|
border-radius: var(--radius);
|
||||||
overflow: clip;
|
overflow: clip;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.min-width_800px {
|
|
||||||
max-width: 800px;
|
|
||||||
margin: 0 auto;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@container (min-width: 800px) {
|
@container (min-width: 800px) {
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<MkStickyContainer>
|
<MkStickyContainer>
|
||||||
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
||||||
<MkSpacer :content-max="800">
|
<MkSpacer :content-max="800">
|
||||||
<div v-size="{ max: [400] }" class="yweeujhr">
|
<div class="yweeujhr">
|
||||||
<MkButton primary class="start" @click="start"><i class="ti ti-plus"></i> {{ $ts.startMessaging }}</MkButton>
|
<MkButton primary class="start" @click="start"><i class="ti ti-plus"></i> {{ $ts.startMessaging }}</MkButton>
|
||||||
|
|
||||||
<div v-if="messages.length > 0" class="history">
|
<div v-if="messages.length > 0" class="history">
|
||||||
|
@ -277,28 +277,6 @@ definePageMetadata({
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.max-width_400px {
|
|
||||||
> .history {
|
|
||||||
> .message {
|
|
||||||
&:not(.isMe):not(.isRead) {
|
|
||||||
> div {
|
|
||||||
background-image: none;
|
|
||||||
border-left: solid 4px #3aa2dc;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
> div {
|
|
||||||
padding: 16px;
|
|
||||||
font-size: 0.9em;
|
|
||||||
|
|
||||||
> .avatar {
|
|
||||||
margin: 0 12px 0 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@container (max-width: 400px) {
|
@container (max-width: 400px) {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div v-size="{ max: [400, 500] }" class="thvuemwp" :class="{ isMe }">
|
<div class="thvuemwp" :class="{ isMe }">
|
||||||
<MkAvatar class="avatar" :user="message.user" :show-indicator="true"/>
|
<MkAvatar class="avatar" :user="message.user" :show-indicator="true"/>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="balloon" :class="{ noText: message.text == null }">
|
<div class="balloon" :class="{ noText: message.text == null }">
|
||||||
|
@ -301,35 +301,6 @@ function del(): void {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.max-width_400px {
|
|
||||||
> .avatar {
|
|
||||||
width: 48px;
|
|
||||||
height: 48px;
|
|
||||||
}
|
|
||||||
|
|
||||||
> .content {
|
|
||||||
> .balloon {
|
|
||||||
> .content {
|
|
||||||
> .text {
|
|
||||||
font-size: 0.9em;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&.max-width_500px {
|
|
||||||
> .content {
|
|
||||||
> .balloon {
|
|
||||||
> .content {
|
|
||||||
> .text {
|
|
||||||
padding: 8px 16px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@container (max-width: 400px) {
|
@container (max-width: 400px) {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<MkStickyContainer>
|
<MkStickyContainer>
|
||||||
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
||||||
<div ref="rootEl" v-size="{ min: [800] }" class="eqqrhokj">
|
<div ref="rootEl" class="eqqrhokj">
|
||||||
<div v-if="queue > 0" class="new"><button class="_buttonPrimary" @click="top()">{{ i18n.ts.newNoteRecived }}</button></div>
|
<div v-if="queue > 0" class="new"><button class="_buttonPrimary" @click="top()">{{ i18n.ts.newNoteRecived }}</button></div>
|
||||||
<div class="tl _block">
|
<div class="tl _block">
|
||||||
<XTimeline
|
<XTimeline
|
||||||
|
@ -105,11 +105,6 @@ definePageMetadata(computed(() => list ? {
|
||||||
border-radius: var(--radius);
|
border-radius: var(--radius);
|
||||||
overflow: clip;
|
overflow: clip;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.min-width_800px {
|
|
||||||
max-width: 800px;
|
|
||||||
margin: 0 auto;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@container (min-width: 800px) {
|
@container (min-width: 800px) {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<MkSpacer :content-max="narrow ? 800 : 1100">
|
<MkSpacer :content-max="narrow ? 800 : 1100">
|
||||||
<div ref="rootEl" v-size="{ max: [500] }" class="ftskorzw" :class="{ wide: !narrow }">
|
<div ref="rootEl" class="ftskorzw" :class="{ wide: !narrow }">
|
||||||
<div class="main">
|
<div class="main">
|
||||||
<!-- TODO -->
|
<!-- TODO -->
|
||||||
<!-- <div class="punished" v-if="user.isSuspended"><i class="ti ti-alert-triangle" style="margin-right: 8px;"></i> {{ i18n.ts.userSuspended }}</div> -->
|
<!-- <div class="punished" v-if="user.isSuspended"><i class="ti ti-alert-triangle" style="margin-right: 8px;"></i> {{ i18n.ts.userSuspended }}</div> -->
|
||||||
|
@ -409,56 +409,6 @@ onUnmounted(() => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.max-width_500px {
|
|
||||||
> .main {
|
|
||||||
> .profile > .main {
|
|
||||||
> .banner-container {
|
|
||||||
height: 140px;
|
|
||||||
|
|
||||||
> .fade {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
> .title {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
> .title {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
> .avatar {
|
|
||||||
top: 90px;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
width: 92px;
|
|
||||||
height: 92px;
|
|
||||||
margin: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
> .description {
|
|
||||||
padding: 16px;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
> .fields {
|
|
||||||
padding: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
> .status {
|
|
||||||
padding: 16px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
> .contents {
|
|
||||||
> .nav {
|
|
||||||
font-size: 80%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&.wide {
|
&.wide {
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
Loading…
Reference in a new issue