add option to keep CWs with "RE:" prefix

This commit is contained in:
Hazelnoot 2025-06-04 14:20:06 -04:00
parent dae544b353
commit 3bf1cb1545
6 changed files with 51 additions and 22 deletions

View file

@ -39,32 +39,34 @@ SPDX-License-Identifier: AGPL-3.0-only
</div>
</template>
<script lang="ts" setup>
<script lang="ts">
type ItemOption<T extends string | number | null | boolean = string | number | null> = {
type?: 'option';
value: T;
label: string;
};
type ItemGroup<T extends string | number | null | boolean = string | number | null> = {
type: 'group';
label: string;
items: ItemOption<T>[];
};
export type MkSelectItem<T extends string | number | null | boolean = string | number | null> = ItemOption<T> | ItemGroup<T>;
</script>
<script lang="ts" setup generic="T extends string | number | null | boolean = string | number | null">
import { onMounted, nextTick, ref, watch, computed, toRefs, useSlots } from 'vue';
import { useInterval } from '@@/js/use-interval.js';
import type { VNode, VNodeChild } from 'vue';
import type { MenuItem } from '@/types/menu.js';
import * as os from '@/os.js';
type ItemOption = {
type?: 'option';
value: string | number | null;
label: string;
};
type ItemGroup = {
type: 'group';
label: string;
items: ItemOption[];
};
export type MkSelectItem = ItemOption | ItemGroup;
// TODO: itemsslotoption(props.items)
// see: https://github.com/misskey-dev/misskey/issues/15558
const props = defineProps<{
modelValue: string | number | null;
modelValue: T;
required?: boolean;
readonly?: boolean;
disabled?: boolean;
@ -73,11 +75,11 @@ const props = defineProps<{
inline?: boolean;
small?: boolean;
large?: boolean;
items?: MkSelectItem[];
items?: MkSelectItem<T>[];
}>();
const emit = defineEmits<{
(ev: 'update:modelValue', value: string | number | null): void;
(ev: 'update:modelValue', value: T): void;
}>();
const slots = useSlots();