1
1
mirror of https://github.com/kokonect-link/cherrypick synced 2024-11-30 15:58:19 +09:00

enhance(frontend): 노트 작성 영역에서 각 항목이 더 잘 구분되도록 조정함

This commit is contained in:
NoriDev 2024-11-07 09:57:27 +09:00
parent f4c6422373
commit 9a41ffc4ba
6 changed files with 23 additions and 11 deletions

View File

@ -29,6 +29,7 @@ Misskey의 전체 변경 사항을 확인하려면, [CHANGELOG.md#2024xx](CHANGE
Misskey의 전체 변경 사항을 확인하려면, [CHANGELOG.md#2024xx](CHANGELOG.md#2024xx) 문서를 참고하십시오. Misskey의 전체 변경 사항을 확인하려면, [CHANGELOG.md#2024xx](CHANGELOG.md#2024xx) 문서를 참고하십시오.
### Client ### Client
- Enhance: 노트 작성 영역에서 각 항목이 더 잘 구분되도록 조정함
- Fix: 노트 삭제 예약 기한을 `기간 지정`으로 설정한 경우 노트가 즉시 삭제될 수 있음 - Fix: 노트 삭제 예약 기한을 `기간 지정`으로 설정한 경우 노트가 즉시 삭제될 수 있음
### Server ### Server

View File

@ -5,7 +5,8 @@ SPDX-License-Identifier: AGPL-3.0-only
<template> <template>
<div class="zmdxowut"> <div class="zmdxowut">
<MkInput v-model="title" small type="text" class="input"> <span>{{ i18n.ts.event }}</span>
<MkInput v-model="title" small type="text" class="input" style="margin: 16px 0 0 0;">
<template #label>*{{ i18n.ts.title }}</template> <template #label>*{{ i18n.ts.title }}</template>
</MkInput> </MkInput>
<section> <section>
@ -227,10 +228,14 @@ watch([
.zmdxowut { .zmdxowut {
padding: 8px 16px; padding: 8px 16px;
>section { > span {
opacity: 0.7;
}
> section {
margin: 16px 0 0 0; margin: 16px 0 0 0;
>div { > div {
margin: 0 8px; margin: 0 8px;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
@ -240,18 +245,18 @@ watch([
&:last-child { &:last-child {
flex: 1 0 auto; flex: 1 0 auto;
>div { > div {
flex-grow: 1; flex-grow: 1;
} }
>section { > section {
// MAGIC: Prevent div above from growing unless wrapped to its own line // MAGIC: Prevent div above from growing unless wrapped to its own line
flex-grow: 9999; flex-grow: 9999;
align-items: end; align-items: end;
display: flex; display: flex;
gap: 4px; gap: 4px;
>.input { > .input {
flex: 1 1 auto; flex: 1 1 auto;
} }
} }

View File

@ -5,6 +5,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<template> <template>
<div class="zmdxowus"> <div class="zmdxowus">
<span>{{ i18n.ts.poll }}</span>
<p v-if="choices.length < 2" class="caution"> <p v-if="choices.length < 2" class="caution">
<i class="ti ti-alert-triangle"></i>{{ i18n.ts._poll.noOnlyOneChoice }} <i class="ti ti-alert-triangle"></i>{{ i18n.ts._poll.noOnlyOneChoice }}
</p> </p>
@ -149,6 +150,10 @@ watch([choices, multiple, expiration, atDate, atTime, after, unit], () => emit('
.zmdxowus { .zmdxowus {
padding: 8px 16px; padding: 8px 16px;
> span {
opacity: 0.7;
}
> .caution { > .caution {
margin: 0 0 8px 0; margin: 0 0 8px 0;
font-size: 0.8em; font-size: 0.8em;

View File

@ -77,7 +77,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<XPostFormAttaches v-model="files" @detach="detachFile" @changeSensitive="updateFileSensitive" @changeName="updateFileName" @replaceFile="replaceFile"/> <XPostFormAttaches v-model="files" @detach="detachFile" @changeSensitive="updateFileSensitive" @changeName="updateFileName" @replaceFile="replaceFile"/>
<MkPollEditor v-if="poll" v-model="poll" @destroyed="poll = null"/> <MkPollEditor v-if="poll" v-model="poll" @destroyed="poll = null"/>
<MkScheduledNoteDelete v-if="scheduledNoteDelete" v-model="scheduledNoteDelete" @destroyed="scheduledNoteDelete = null"/> <MkScheduledNoteDelete v-if="scheduledNoteDelete" v-model="scheduledNoteDelete" @destroyed="scheduledNoteDelete = null"/>
<MkScheduleEditor v-if="scheduleNote" v-model="scheduleNote" @destroyed="scheduleNote = null"/> <MkSchedulePostEditor v-if="scheduleNote" v-model="scheduleNote" @destroyed="scheduleNote = null"/>
<MkNotePreview v-if="showPreview && textLength > 0" :class="$style.preview" :text="text" :files="files" :poll="poll ?? undefined" :useCw="useCw" :cw="cw" :user="postAccount ?? $i" :showProfile="showProfilePreview"/> <MkNotePreview v-if="showPreview && textLength > 0" :class="$style.preview" :text="text" :files="files" :poll="poll ?? undefined" :useCw="useCw" :cw="cw" :user="postAccount ?? $i" :showProfile="showProfilePreview"/>
<div v-if="showingOptions" style="padding: 8px 16px;"> <div v-if="showingOptions" style="padding: 8px 16px;">
</div> </div>
@ -139,7 +139,7 @@ import { vibrate } from '@/scripts/vibrate.js';
import * as sound from '@/scripts/sound.js'; import * as sound from '@/scripts/sound.js';
import { mfmFunctionPicker } from '@/scripts/mfm-function-picker.js'; import { mfmFunctionPicker } from '@/scripts/mfm-function-picker.js';
import MkScheduledNoteDelete, { type DeleteScheduleEditorModelValue } from '@/components/MkScheduledNoteDelete.vue'; import MkScheduledNoteDelete, { type DeleteScheduleEditorModelValue } from '@/components/MkScheduledNoteDelete.vue';
import MkScheduleEditor from '@/components/MkScheduleEditor.vue'; import MkSchedulePostEditor from '@/components/MkSchedulePostEditor.vue';
import { listScheduleNotePost } from '@/os.js'; import { listScheduleNotePost } from '@/os.js';
const $i = signinRequired(); const $i = signinRequired();

View File

@ -88,7 +88,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<XPostFormAttaches v-if="showForm" v-model="files" @detach="detachFile" @changeSensitive="updateFileSensitive" @changeName="updateFileName" @replaceFile="replaceFile"/> <XPostFormAttaches v-if="showForm" v-model="files" @detach="detachFile" @changeSensitive="updateFileSensitive" @changeName="updateFileName" @replaceFile="replaceFile"/>
<MkPollEditor v-if="poll && showForm" v-model="poll" @destroyed="poll = null"/> <MkPollEditor v-if="poll && showForm" v-model="poll" @destroyed="poll = null"/>
<MkScheduledNoteDelete v-if="scheduledNoteDelete" v-model="scheduledNoteDelete" @destroyed="scheduledNoteDelete = null"/> <MkScheduledNoteDelete v-if="scheduledNoteDelete" v-model="scheduledNoteDelete" @destroyed="scheduledNoteDelete = null"/>
<MkScheduleEditor v-if="scheduleNote" v-model="scheduleNote" @destroyed="scheduleNote = null"/> <MkSchedulePostEditor v-if="scheduleNote" v-model="scheduleNote" @destroyed="scheduleNote = null"/>
<MkNotePreview v-if="showPreview && showForm && textLength > 0" :class="$style.preview" :text="text" :files="files" :poll="poll ?? undefined" :useCw="useCw" :cw="cw" :user="postAccount ?? $i" :showProfile="showProfilePreview"/> <MkNotePreview v-if="showPreview && showForm && textLength > 0" :class="$style.preview" :text="text" :files="files" :poll="poll ?? undefined" :useCw="useCw" :cw="cw" :user="postAccount ?? $i" :showProfile="showProfilePreview"/>
<div v-if="showingOptions && showForm" style="padding: 8px 16px;"> <div v-if="showingOptions && showForm" style="padding: 8px 16px;">
</div> </div>
@ -156,7 +156,7 @@ import XSigninDialog from '@/components/MkSigninDialog.vue';
import * as sound from '@/scripts/sound.js'; import * as sound from '@/scripts/sound.js';
import { mfmFunctionPicker } from '@/scripts/mfm-function-picker.js'; import { mfmFunctionPicker } from '@/scripts/mfm-function-picker.js';
import MkScheduledNoteDelete, { type DeleteScheduleEditorModelValue } from '@/components/MkScheduledNoteDelete.vue'; import MkScheduledNoteDelete, { type DeleteScheduleEditorModelValue } from '@/components/MkScheduledNoteDelete.vue';
import MkScheduleEditor from '@/components/MkScheduleEditor.vue'; import MkSchedulePostEditor from '@/components/MkSchedulePostEditor.vue';
import { listScheduleNotePost } from '@/os.js'; import { listScheduleNotePost } from '@/os.js';
const $i = signinRequired(); const $i = signinRequired();

View File

@ -5,7 +5,8 @@ SPDX-License-Identifier: AGPL-3.0-only
<template> <template>
<div style="padding: 8px 16px;"> <div style="padding: 8px 16px;">
<section> <span style="opacity: 0.7;">{{ i18n.ts.schedulePost }}</span>
<section style="margin: 16px 0 0 0;">
<MkInput v-model="atDate" small type="date" class="input"> <MkInput v-model="atDate" small type="date" class="input">
<template #label>{{ i18n.ts._poll.deadlineDate }}</template> <template #label>{{ i18n.ts._poll.deadlineDate }}</template>
</MkInput> </MkInput>