Merge tag '2024.11.0' into feature/2024.10

This commit is contained in:
dakkar 2024-11-22 12:29:04 +00:00
commit bc816cb166
234 changed files with 6612 additions and 4634 deletions

View file

@ -28,12 +28,13 @@ import { pleaseLogin } from '@/scripts/please-login.js';
import { showMovedDialog } from '@/scripts/show-moved-dialog.js';
import { getHTMLElementOrNull } from '@/scripts/get-dom-node-or-null.js';
import { focusParent } from '@/scripts/focus.js';
import type { PostFormProps } from '@/types/post-form.js';
export const openingWindowsCount = ref(0);
export const apiWithDialog = (<E extends keyof Misskey.Endpoints = keyof Misskey.Endpoints, P extends Misskey.Endpoints[E]['req'] = Misskey.Endpoints[E]['req']>(
export const apiWithDialog = (<E extends keyof Misskey.Endpoints, P extends Misskey.Endpoints[E]['req'] = Misskey.Endpoints[E]['req']>(
endpoint: E,
data: P = {} as any,
data: P,
token?: string | null | undefined,
customErrors?: Record<string, { title?: string; text: string; }>,
) => {
@ -94,7 +95,7 @@ export const apiWithDialog = (<E extends keyof Misskey.Endpoints = keyof Misskey
export function promiseDialog<T extends Promise<any>>(
promise: T,
onSuccess?: ((res: any) => void) | null,
onSuccess?: ((res: Awaited<T>) => void) | null,
onFailure?: ((err: Misskey.api.APIError) => void) | null,
text?: string,
): T {
@ -143,12 +144,12 @@ export function promiseDialog<T extends Promise<any>>(
}
let popupIdCount = 0;
export const popups = ref([]) as Ref<{
export const popups = ref<{
id: number;
component: Component;
props: Record<string, any>;
events: Record<string, any>;
}[]>;
}[]>([]);
const zIndexes = {
veryLow: 500000,
@ -467,7 +468,7 @@ type SelectItem<C> = {
};
// default が指定されていたら result は null になり得ないことを保証する overload function
export function select<C = any>(props: {
export function select<C = unknown>(props: {
title?: string;
text?: string;
default: string;
@ -480,7 +481,7 @@ export function select<C = any>(props: {
} | {
canceled: false; result: C;
}>;
export function select<C = any>(props: {
export function select<C = unknown>(props: {
title?: string;
text?: string;
default?: string | null;
@ -493,7 +494,7 @@ export function select<C = any>(props: {
} | {
canceled: false; result: C | null;
}>;
export function select<C = any>(props: {
export function select<C = unknown>(props: {
title?: string;
text?: string;
default?: string | null;
@ -696,15 +697,17 @@ export function contextMenu(items: MenuItem[], ev: MouseEvent): Promise<void> {
}));
}
export function post(props: Record<string, any> = {}): Promise<void | boolean> {
pleaseLogin(undefined, (props.initialText || props.initialNote ? {
type: 'share',
params: {
text: props.initialText ?? props.initialNote.text,
visibility: props.initialVisibility ?? props.initialNote?.visibility,
localOnly: (props.initialLocalOnly || props.initialNote?.localOnly) ? '1' : '0',
},
} : undefined));
export function post(props: PostFormProps = {}): Promise<void | boolean> {
pleaseLogin({
openOnRemote: (props.initialText || props.initialNote ? {
type: 'share',
params: {
text: props.initialText ?? props.initialNote?.text ?? '',
visibility: props.initialVisibility ?? props.initialNote?.visibility ?? 'public',
localOnly: (props.initialLocalOnly || props.initialNote?.localOnly) ? '1' : '0',
},
} : undefined),
});
showMovedDialog();
return new Promise(resolve => {