enhance(frontend): 노트 상세 페이지의 노트 작성 폼에서 노트를 게시했을 때 작성 폼을 다시 닫도록 변경함
This commit is contained in:
parent
fbd91e4c95
commit
da7a083a06
|
@ -59,6 +59,7 @@ Misskey의 전체 변경 사항을 확인하려면, [CHANGELOG.md#2023xx](CHANGE
|
|||
- 리노트 시 공개 범위를 설정할 수 있음
|
||||
- Enhance: 사용자 팝업 개선
|
||||
- 자신의 프로필인 경우, 팔로우 버튼을 프로필 편집 버튼으로 표시함
|
||||
- Enhance: 노트 상세 페이지의 노트 작성 폼에서 노트를 게시했을 때 작성 폼을 다시 닫도록 변경함
|
||||
- Fix: '모달 배경색 제거' 옵션이 이모지 피커에 반영되지 않음
|
||||
- Fix: 열람 주의로 설정된 노트의 리액션이 '더 보기'를 눌러야 표시됨
|
||||
- Fix: 채널 이름이 긴 경우 게시 양식 표시가 깨지는 문제 (misskey-dev/misskey#12524)
|
||||
|
|
|
@ -13,9 +13,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
>
|
||||
<Transition
|
||||
:enterActiveClass="defaultStore.state.animation ? $style.transition_header_enterActive : ''"
|
||||
:leaveActiveClass="defaultStore.state.animation ? $style.transition_header_leaveActive : ''"
|
||||
:enterFromClass="defaultStore.state.animation ? $style.transition_header_enterFrom : ''"
|
||||
:leaveToClass="defaultStore.state.animation ? $style.transition_header_leaveTo : ''"
|
||||
>
|
||||
<header v-if="showForm" :class="$style.header">
|
||||
<div :class="$style.headerLeft">
|
||||
|
@ -94,9 +92,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
</div>
|
||||
<Transition
|
||||
:enterActiveClass="defaultStore.state.animation ? $style.transition_footer_enterActive : ''"
|
||||
:leaveActiveClass="defaultStore.state.animation ? $style.transition_footer_leaveActive : ''"
|
||||
:enterFromClass="defaultStore.state.animation ? $style.transition_footer_enterFrom : ''"
|
||||
:leaveToClass="defaultStore.state.animation ? $style.transition_footer_leaveTo : ''"
|
||||
>
|
||||
<footer v-if="showForm" :class="$style.footer">
|
||||
<div :class="$style.footerLeft">
|
||||
|
@ -324,30 +320,6 @@ watch(visibleUsers, () => {
|
|||
deep: true,
|
||||
});
|
||||
|
||||
if (props.mention) {
|
||||
text.value = props.mention.host ? `@${props.mention.username}@${toASCII(props.mention.host)}` : `@${props.mention.username}`;
|
||||
text.value += ' ';
|
||||
}
|
||||
|
||||
if (props.reply && props.reply.text != null) {
|
||||
const ast = mfm.parse(props.reply.text);
|
||||
const otherHost = props.reply.user.host;
|
||||
|
||||
for (const x of extractMentions(ast)) {
|
||||
const mention = x.host ?
|
||||
`@${x.username}@${toASCII(x.host)}` :
|
||||
(otherHost == null || otherHost === host) ?
|
||||
`@${x.username}` :
|
||||
`@${x.username}@${toASCII(otherHost)}`;
|
||||
|
||||
// 自分は除外
|
||||
if ($i.username === x.username && (x.host == null || x.host === host)) continue;
|
||||
|
||||
// 重複は除外
|
||||
if (text.value.includes(`${mention} `)) continue;
|
||||
}
|
||||
}
|
||||
|
||||
if ($i?.isSilenced && visibility.value === 'public') {
|
||||
visibility.value = 'home';
|
||||
}
|
||||
|
@ -921,6 +893,7 @@ async function post(ev?: MouseEvent) {
|
|||
});
|
||||
});
|
||||
textareaEl.value.style.height = '35px';
|
||||
showForm.value = false;
|
||||
if (props.updateMode) sound.play('noteEdited');
|
||||
vibrate(defaultStore.state.vibrateSystem ? [10, 20, 10, 20, 10, 20, 60] : []);
|
||||
}
|
||||
|
@ -991,6 +964,10 @@ function openAccountMenu(ev: MouseEvent) {
|
|||
function formClick() {
|
||||
if ($i) showForm.value = true;
|
||||
|
||||
if (props.reply && (props.reply.user.username !== $i.username || (props.reply.user.host != null && props.reply.user.host !== host))) {
|
||||
text.value = `@${props.reply.user.username}${props.reply.user.host != null ? '@' + toASCII(props.reply.user.host) : ''} `;
|
||||
}
|
||||
|
||||
if (props.reply && props.reply.text != null) {
|
||||
const ast = mfm.parse(props.reply.text);
|
||||
const otherHost = props.reply.user.host;
|
||||
|
@ -1110,25 +1087,17 @@ defineExpose({
|
|||
|
||||
<style lang="scss" module>
|
||||
.transition_header_enterActive,
|
||||
.transition_header_leaveActive {
|
||||
.transition_footer_enterActive {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
transition: transform 850ms cubic-bezier(0.23, 1, 0.32, 1), opacity 850ms cubic-bezier(0.23, 1, 0.32, 1);
|
||||
}
|
||||
.transition_header_enterFrom,
|
||||
.transition_header_leaveTo {
|
||||
.transition_header_enterFrom {
|
||||
opacity: 0;
|
||||
transform: translateY(20px);
|
||||
}
|
||||
|
||||
.transition_footer_enterActive,
|
||||
.transition_footer_leaveActive {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
transition: transform 850ms cubic-bezier(0.23, 1, 0.32, 1), opacity 850ms cubic-bezier(0.23, 1, 0.32, 1);
|
||||
}
|
||||
.transition_footer_enterFrom,
|
||||
.transition_footer_leaveTo {
|
||||
.transition_footer_enterFrom {
|
||||
opacity: 0;
|
||||
transform: translateY(-20px);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue