fix: dont show cheat sheet when not needed

This commit is contained in:
Kainoa Kanter 2023-05-16 20:31:13 -07:00
parent dcd6e48101
commit 2de535b0b8
15 changed files with 209 additions and 103 deletions

View file

@ -24,12 +24,12 @@ export async function importMastoPost(
reply = await resolveNote(post.object.inReplyTo);
}
if (post.directMessage) {
done();
done();
return;
}
if (job.data.signatureCheck) {
if (!post.signature) {
done();
done();
return;
}
}

View file

@ -204,6 +204,7 @@
<i class="ph-plug ph-bold ph-lg"></i>
</button>
<button
v-if="showMfmCheatsheet"
v-tooltip="i18n.ts._mfm.cheatSheet"
class="_button right"
@click="openCheatSheet"
@ -275,11 +276,13 @@ const props = withDefaults(
instant?: boolean;
fixed?: boolean;
autofocus?: boolean;
showMfmCheatSheet?: boolean;
editId?: misskey.entities.Note["id"];
}>(),
{
initialVisibleUsers: () => [],
autofocus: true,
showMfmCheatSheet: true,
}
);

View file

@ -103,7 +103,7 @@
</template>
</I18n>
<br />
<XPostForm class="post-form _block" />
<XPostForm class="post-form _block" :show-mfm-cheat-sheet="false"/>
</section>
<section
v-else-if="tutorial === 4"

View file

@ -3,7 +3,9 @@
<label>
<div class="label"><slot name="label"></slot></div>
<div class="input" :class="{ inline, disabled, focused }">
<div ref="prefixEl" class="prefix"><slot name="prefix"></slot></div>
<div ref="prefixEl" class="prefix">
<slot name="prefix"></slot>
</div>
<input
ref="inputEl"
v-model="v"
@ -26,7 +28,9 @@
<datalist v-if="datalist" :id="id">
<option v-for="data in datalist" :value="data" />
</datalist>
<div ref="suffixEl" class="suffix"><slot name="suffix"></slot></div>
<div ref="suffixEl" class="suffix">
<slot name="suffix"></slot>
</div>
</div>
<div class="caption"><slot name="caption"></slot></div>
</label>
@ -183,25 +187,25 @@ onMounted(() => {
font-size: 0.85em;
padding: 0 0 8px 0;
user-select: none;
&:empty {
display: none;
}
}
> .caption {
font-size: 0.85em;
padding: 8px 0 0 0;
color: var(--fgTransparentWeak);
&:empty {
display: none;
}
}
> .input {
position: relative;
> input {
appearance: none;
-webkit-appearance: none;
@ -221,12 +225,12 @@ onMounted(() => {
box-shadow: none;
box-sizing: border-box;
transition: border-color 0.1s ease-out;
&:hover {
border-color: var(--inputBorderHover) !important;
}
}
> .prefix,
> .suffix {
display: flex;
@ -238,11 +242,11 @@ onMounted(() => {
font-size: 1em;
height: v-bind("height + 'px'");
pointer-events: none;
&:empty {
display: none;
}
> * {
display: inline-block;
min-width: 16px;
@ -252,32 +256,32 @@ onMounted(() => {
text-overflow: ellipsis;
}
}
> .prefix {
left: 0;
padding-right: 6px;
}
> .suffix {
right: 0;
padding-left: 6px;
}
&.inline {
display: inline-block;
margin: 0;
}
&.focused {
> input {
border-color: var(--accent) !important;
//box-shadow: 0 0 0 4px var(--focus);
}
}
&.disabled {
opacity: 0.7;
&,
* {
cursor: not-allowed !important;

View file

@ -1,10 +1,6 @@
<template>
<label
v-adaptive-border
class="novjtctn"
:class="{ disabled, checked }"
>
<input
<label v-adaptive-border class="novjtctn" :class="{ disabled, checked }">
<input
type="radio"
:disabled="disabled"
:checked="checked"

View file

@ -17,13 +17,10 @@
@blur="tooltipHide"
@mouseenter="tooltipShow"
@mouseleave="tooltipHide"
@input="(x) => inputVal = x.target.value"
@input="(x) => (inputVal = x.target.value)"
/>
<datalist
v-if="showTicks && steps"
:id="id"
>
<option
<datalist v-if="showTicks && steps" :id="id">
<option
v-for="i in steps + 1"
:value="i"
:label="i.toString()"
@ -97,7 +94,6 @@ function tooltipShow() {
function tooltipHide() {
tooltipShowing.value = false;
}
</script>
<style lang="scss" scoped>
@ -163,19 +159,33 @@ function tooltipHide() {
width: 100%;
background: none;
&::-webkit-slider-runnable-track { @include track }
&::-moz-range-track { @include track }
&::-ms-track { @include track }
&::-webkit-slider-runnable-track {
@include track;
}
&::-moz-range-track {
@include track;
}
&::-ms-track {
@include track;
}
&::-moz-range-progress { @include fill }
&::-ms-fill-lower { @include fill }
&::-moz-range-progress {
@include fill;
}
&::-ms-fill-lower {
@include fill;
}
&::-webkit-slider-thumb {
margin-top: -6.5px;
@include thumb
@include thumb;
}
&::-moz-range-thumb {
@include thumb;
}
&::-ms-thumb {
@include thumb;
}
&::-moz-range-thumb { @include thumb }
&::-ms-thumb { @include thumb }
}
}
}

View file

@ -9,7 +9,9 @@
@click.prevent="onClick"
tabindex="-1"
>
<div ref="prefixEl" class="prefix"><slot name="prefix"></slot></div>
<div ref="prefixEl" class="prefix">
<slot name="prefix"></slot>
</div>
<select
ref="inputEl"
v-model="v"
@ -199,34 +201,34 @@ const onClick = (ev: MouseEvent) => {
font-size: 0.85em;
padding: 0 0 8px 0;
user-select: none;
&:empty {
display: none;
}
}
> .caption {
font-size: 0.85em;
padding: 8px 0 0 0;
color: var(--fgTransparentWeak);
&:empty {
display: none;
}
}
> .input {
position: relative;
cursor: pointer;
margin-left: 0.2rem;
margin-right: 0.2rem;
&:hover {
> .select {
border-color: var(--inputBorderHover) !important;
}
}
> .select {
appearance: none;
-webkit-appearance: none;
@ -250,7 +252,7 @@ const onClick = (ev: MouseEvent) => {
pointer-events: none;
user-select: none;
}
> .prefix,
> .suffix {
display: flex;
@ -262,11 +264,11 @@ const onClick = (ev: MouseEvent) => {
font-size: 1em;
height: v-bind("height + 'px'");
pointer-events: none;
&:empty {
display: none;
}
> * {
display: inline-block;
min-width: 16px;
@ -276,31 +278,31 @@ const onClick = (ev: MouseEvent) => {
text-overflow: ellipsis;
}
}
> .prefix {
left: 0;
padding-right: 6px;
}
> .suffix {
right: 0;
padding-left: 6px;
}
&.inline {
display: inline-block;
margin: 0;
}
&.focused {
> select {
border-color: var(--accent) !important;
}
}
&.disabled {
opacity: 0.7;
&,
* {
cursor: not-allowed !important;

View file

@ -6,9 +6,7 @@
:disabled="disabled"
v-on:change="(x) => toggle(x)"
/>
<div
class="button"
>
<div class="button">
<div class="knob"></div>
</div>
<span class="label">

View file

@ -209,14 +209,14 @@ export default defineComponent({
font-size: 0.85em;
padding: 8px 0 0 0;
color: var(--fgTransparentWeak);
&:empty {
display: none;
}
}
> .input {
> .input {
position: relative;
> textarea {
appearance: none;
-webkit-appearance: none;
@ -238,33 +238,33 @@ export default defineComponent({
box-shadow: none;
box-sizing: border-box;
transition: border-color 0.1s ease-out;
&:hover {
border-color: var(--inputBorderHover) !important;
}
}
&.focused {
> textarea {
border-color: var(--accent) !important;
}
}
&.disabled {
opacity: 0.7;
&,
* {
cursor: not-allowed !important;
}
}
&.tall {
> textarea {
min-height: 200px;
}
}
&.pre {
> textarea {
white-space: pre;
@ -273,7 +273,6 @@ export default defineComponent({
}
}
> .save {
margin: 8px 0 0 0;
}

View file

@ -35,7 +35,7 @@ const adjust = (rect: { width: number; height: number }) => {
margin = props.marginMin;
return;
}
if ( ui === "classic" ) {
if (ui === "classic") {
margin = 12;
return;
}

View file

@ -193,7 +193,7 @@ export function claimZIndex(
let uniqueId = 0;
export function getUniqueId(): string {
return uniqueId++ + '';
return uniqueId++ + "";
}
export async function popup(
@ -232,7 +232,11 @@ export async function popup(
export function pageWindow(path: string) {
popup(
defineAsyncComponent({ loader: () => import("@/components/MkPageWindow.vue"), loadingComponent: MkWaitingDialog, delay: 1000 }),
defineAsyncComponent({
loader: () => import("@/components/MkPageWindow.vue"),
loadingComponent: MkWaitingDialog,
delay: 1000,
}),
{
initialPath: path,
},
@ -243,7 +247,11 @@ export function pageWindow(path: string) {
export function modalPageWindow(path: string) {
popup(
defineAsyncComponent({ loader: () => import("@/components/MkModalPageWindow.vue"), loadingComponent: MkWaitingDialog, delay: 1000 }),
defineAsyncComponent({
loader: () => import("@/components/MkModalPageWindow.vue"),
loadingComponent: MkWaitingDialog,
delay: 1000,
}),
{
initialPath: path,
},
@ -313,7 +321,11 @@ export function yesno(props: {
}): Promise<{ canceled: boolean }> {
return new Promise((resolve, reject) => {
popup(
defineAsyncComponent({ loader: () => import("@/components/MkDialog.vue"), loadingComponent: MkWaitingDialog, delay: 1000 }),
defineAsyncComponent({
loader: () => import("@/components/MkDialog.vue"),
loadingComponent: MkWaitingDialog,
delay: 1000,
}),
{
...props,
showCancelButton: true,
@ -344,7 +356,11 @@ export function inputText(props: {
> {
return new Promise((resolve, reject) => {
popup(
defineAsyncComponent({ loader: () => import("@/components/MkDialog.vue"), loadingComponent: MkWaitingDialog, delay: 1000 }),
defineAsyncComponent({
loader: () => import("@/components/MkDialog.vue"),
loadingComponent: MkWaitingDialog,
delay: 1000,
}),
{
title: props.title,
text: props.text,
@ -378,7 +394,11 @@ export function inputParagraph(props: {
> {
return new Promise((resolve, reject) => {
popup(
defineAsyncComponent({ loader: () => import("@/components/MkDialog.vue"), loadingComponent: MkWaitingDialog, delay: 1000 }),
defineAsyncComponent({
loader: () => import("@/components/MkDialog.vue"),
loadingComponent: MkWaitingDialog,
delay: 1000,
}),
{
title: props.title,
text: props.text,
@ -412,7 +432,11 @@ export function inputNumber(props: {
> {
return new Promise((resolve, reject) => {
popup(
defineAsyncComponent({ loader: () => import("@/components/MkDialog.vue"), loadingComponent: MkWaitingDialog, delay: 1000 }),
defineAsyncComponent({
loader: () => import("@/components/MkDialog.vue"),
loadingComponent: MkWaitingDialog,
delay: 1000,
}),
{
title: props.title,
text: props.text,
@ -446,7 +470,11 @@ export function inputDate(props: {
> {
return new Promise((resolve, reject) => {
popup(
defineAsyncComponent({ loader: () => import("@/components/MkDialog.vue"), loadingComponent: MkWaitingDialog, delay: 1000 }),
defineAsyncComponent({
loader: () => import("@/components/MkDialog.vue"),
loadingComponent: MkWaitingDialog,
delay: 1000,
}),
{
title: props.title,
text: props.text,
@ -501,7 +529,11 @@ export function select<C = any>(
> {
return new Promise((resolve, reject) => {
popup(
defineAsyncComponent({ loader: () => import("@/components/MkDialog.vue"), loadingComponent: MkWaitingDialog, delay: 1000 }),
defineAsyncComponent({
loader: () => import("@/components/MkDialog.vue"),
loadingComponent: MkWaitingDialog,
delay: 1000,
}),
{
title: props.title,
text: props.text,
@ -528,7 +560,11 @@ export function success() {
showing.value = false;
}, 1000);
popup(
defineAsyncComponent({ loader: () => import("@/components/MkWaitingDialog.vue"), loadingComponent: MkWaitingDialog, delay: 1000 }),
defineAsyncComponent({
loader: () => import("@/components/MkWaitingDialog.vue"),
loadingComponent: MkWaitingDialog,
delay: 1000,
}),
{
success: true,
showing: showing,
@ -545,7 +581,11 @@ export function waiting() {
return new Promise((resolve, reject) => {
const showing = ref(true);
popup(
defineAsyncComponent({ loader: () => import("@/components/MkWaitingDialog.vue"), loadingComponent: MkWaitingDialog, delay: 1000 }),
defineAsyncComponent({
loader: () => import("@/components/MkWaitingDialog.vue"),
loadingComponent: MkWaitingDialog,
delay: 1000,
}),
{
success: false,
showing: showing,
@ -561,7 +601,11 @@ export function waiting() {
export function form(title, form) {
return new Promise((resolve, reject) => {
popup(
defineAsyncComponent({ loader: () => import("@/components/MkFormDialog.vue"), loadingComponent: MkWaitingDialog, delay: 1000 }),
defineAsyncComponent({
loader: () => import("@/components/MkFormDialog.vue"),
loadingComponent: MkWaitingDialog,
delay: 1000,
}),
{ title, form },
{
done: (result) => {
@ -576,7 +620,11 @@ export function form(title, form) {
export async function selectUser() {
return new Promise((resolve, reject) => {
popup(
defineAsyncComponent({ loader: () => import("@/components/MkUserSelectDialog.vue"), loadingComponent: MkWaitingDialog, delay: 1000 }),
defineAsyncComponent({
loader: () => import("@/components/MkUserSelectDialog.vue"),
loadingComponent: MkWaitingDialog,
delay: 1000,
}),
{},
{
ok: (user) => {
@ -591,7 +639,11 @@ export async function selectUser() {
export async function selectInstance(): Promise<Misskey.entities.Instance> {
return new Promise((resolve, reject) => {
popup(
defineAsyncComponent({ loader: () => import("@/components/MkInstanceSelectDialog.vue"), loadingComponent: MkWaitingDialog, delay: 1000 }),
defineAsyncComponent({
loader: () => import("@/components/MkInstanceSelectDialog.vue"),
loadingComponent: MkWaitingDialog,
delay: 1000,
}),
{},
{
ok: (instance) => {
@ -606,7 +658,11 @@ export async function selectInstance(): Promise<Misskey.entities.Instance> {
export async function selectDriveFile(multiple: boolean) {
return new Promise((resolve, reject) => {
popup(
defineAsyncComponent({ loader: () => import("@/components/MkDriveSelectDialog.vue"), loadingComponent: MkWaitingDialog, delay: 1000 }),
defineAsyncComponent({
loader: () => import("@/components/MkDriveSelectDialog.vue"),
loadingComponent: MkWaitingDialog,
delay: 1000,
}),
{
type: "file",
multiple,
@ -626,7 +682,11 @@ export async function selectDriveFile(multiple: boolean) {
export async function selectDriveFolder(multiple: boolean) {
return new Promise((resolve, reject) => {
popup(
defineAsyncComponent({ loader: () => import("@/components/MkDriveSelectDialog.vue"), loadingComponent: MkWaitingDialog, delay: 1000 }),
defineAsyncComponent({
loader: () => import("@/components/MkDriveSelectDialog.vue"),
loadingComponent: MkWaitingDialog,
delay: 1000,
}),
{
type: "folder",
multiple,
@ -646,7 +706,11 @@ export async function selectDriveFolder(multiple: boolean) {
export async function pickEmoji(src: HTMLElement | null, opts) {
return new Promise((resolve, reject) => {
popup(
defineAsyncComponent({ loader: () => import("@/components/MkEmojiPickerDialog.vue"), loadingComponent: MkWaitingDialog, delay: 1000 }),
defineAsyncComponent({
loader: () => import("@/components/MkEmojiPickerDialog.vue"),
loadingComponent: MkWaitingDialog,
delay: 1000,
}),
{
src,
...opts,
@ -669,7 +733,11 @@ export async function cropImage(
): Promise<Misskey.entities.DriveFile> {
return new Promise((resolve, reject) => {
popup(
defineAsyncComponent({ loader: () => import("@/components/MkCropperDialog.vue"), loadingComponent: MkWaitingDialog, delay: 1000 }),
defineAsyncComponent({
loader: () => import("@/components/MkCropperDialog.vue"),
loadingComponent: MkWaitingDialog,
delay: 1000,
}),
{
file: image,
aspectRatio: options.aspectRatio,
@ -733,7 +801,11 @@ export async function openEmojiPicker(
});
openingEmojiPicker = await popup(
defineAsyncComponent({ loader: () => import("@/components/MkEmojiPickerDialog.vue"), loadingComponent: MkWaitingDialog, delay: 1000 }),
defineAsyncComponent({
loader: () => import("@/components/MkEmojiPickerDialog.vue"),
loadingComponent: MkWaitingDialog,
delay: 1000,
}),
{
src,
...opts,
@ -766,7 +838,11 @@ export function popupMenu(
return new Promise((resolve, reject) => {
let dispose;
popup(
defineAsyncComponent({ loader: () => import("@/components/MkPopupMenu.vue"), loadingComponent: MkWaitingDialog, delay: 1000 }),
defineAsyncComponent({
loader: () => import("@/components/MkPopupMenu.vue"),
loadingComponent: MkWaitingDialog,
delay: 1000,
}),
{
items,
src,
@ -794,7 +870,11 @@ export function contextMenu(
return new Promise((resolve, reject) => {
let dispose;
popup(
defineAsyncComponent({ loader: () => import("@/components/MkContextMenu.vue"), loadingComponent: MkWaitingDialog, delay: 1000 }),
defineAsyncComponent({
loader: () => import("@/components/MkContextMenu.vue"),
loadingComponent: MkWaitingDialog,
delay: 1000,
}),
{
items,
ev,

View file

@ -55,12 +55,12 @@
i18n.ts.disablePagesScript
}}</FormSwitch>
<FormSwitch v-model="profile.showTimelineReplies" class="_formBlock"
>{{ i18n.ts.flagShowTimelineReplies
}}<template #caption
>{{ i18n.ts.flagShowTimelineRepliesDescription }}
{{ i18n.ts.reflectMayTakeTime }}</template
></FormSwitch
>
>{{ i18n.ts.flagShowTimelineReplies
}}<template #caption
>{{ i18n.ts.flagShowTimelineRepliesDescription }}
{{ i18n.ts.reflectMayTakeTime }}</template
></FormSwitch
>
<FormSelect v-model="serverDisconnectedBehavior" class="_formBlock">
<template #label>{{ i18n.ts.whenServerDisconnected }}</template>
@ -168,8 +168,12 @@
<FormSelect v-model="instanceTicker" class="_formBlock">
<template #label>{{ i18n.ts.instanceTicker }}</template>
<option value="none">{{ i18n.ts._instanceTicker.none }}</option>
<option value="remote">{{ i18n.ts._instanceTicker.remote }}</option>
<option value="always">{{ i18n.ts._instanceTicker.always }}</option>
<option value="remote">
{{ i18n.ts._instanceTicker.remote }}
</option>
<option value="always">
{{ i18n.ts._instanceTicker.always }}
</option>
</FormSelect>
<FormSelect v-model="nsfw" class="_formBlock">

View file

@ -7,7 +7,9 @@
><i class="ph-airplane-takeoff ph-bold ph-lg"></i
></template>
<template #label>{{ i18n.ts.moveToLabel }}</template>
<template #caption>{{ i18n.ts.moveAccountDescription }}</template>
<template #caption>{{
i18n.ts.moveAccountDescription
}}</template>
</FormInput>
<FormButton primary danger @click="move(moveToAccount)">
{{ i18n.ts.moveAccount }}

View file

@ -1,5 +1,8 @@
<template>
<div class="dkgtipfy" :class="{ wallpaper, isMobile, centered: ui === 'classic' }">
<div
class="dkgtipfy"
:class="{ wallpaper, isMobile, centered: ui === 'classic' }"
>
<XSidebar v-if="!isMobile" class="sidebar" />
<MkStickyContainer class="contents">

View file

@ -1,5 +1,10 @@
<template>
<XPostForm class="_panel mkw-postForm" :fixed="true" :autofocus="false" />
<XPostForm
class="_panel mkw-postForm"
:fixed="true"
:autofocus="false"
:show-mfm-cheat-sheet="true"
/>
</template>
<script lang="ts" setup>