Merge tag '2025.4.0' into merge/2025-03-24
# Conflicts: # .github/workflows/storybook.yml # locales/index.d.ts # package.json # packages/backend/src/models/json-schema/role.ts # packages/frontend/src/components/MkPageWindow.vue # packages/frontend/src/pages/admin/roles.editor.vue # packages/frontend/src/pages/admin/roles.vue # packages/frontend/src/pages/settings/preferences.vue # packages/frontend/src/pages/settings/privacy.vue # packages/frontend/src/pages/timeline.vue # packages/frontend/src/pref-migrate.ts # packages/frontend/src/ui/_common_/common.vue # packages/frontend/src/ui/deck.vue # packages/frontend/src/ui/universal.vue # packages/misskey-js/src/autogen/types.ts
This commit is contained in:
commit
7132696285
98 changed files with 1621 additions and 2087 deletions
|
|
@ -363,7 +363,7 @@ export function getUserMenu(user: Misskey.entities.UserDetailed, router: Router
|
|||
},
|
||||
});
|
||||
|
||||
if ($i.policies.canChat && user.canChat && user.host == null) {
|
||||
if ($i.policies.chatAvailability === 'available' && user.canChat && user.host == null) {
|
||||
menuItems.push({
|
||||
type: 'link',
|
||||
icon: 'ti ti-messages',
|
||||
|
|
|
|||
|
|
@ -65,10 +65,11 @@ const hyphens = [
|
|||
];
|
||||
|
||||
const hyphensCodePoints = hyphens.map(code => `\\u{${code.toString(16).padStart(4, '0')}}`);
|
||||
const hyphensRegex = new RegExp(`[${hyphensCodePoints.join('')}]`, 'ug');
|
||||
|
||||
/** ハイフンを統一(ローマ字半角入力時に`ー`と`-`が判定できない問題の調整) */
|
||||
export function normalizeHyphens(str: string) {
|
||||
return str.replace(new RegExp(`[${hyphensCodePoints.join('')}]`, 'ug'), '\u002d');
|
||||
return str.replace(hyphensRegex, '\u002d');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -8,35 +8,27 @@ import type { GeneratedSearchIndexItem } from 'search-index:settings';
|
|||
|
||||
export type SearchIndexItem = {
|
||||
id: string;
|
||||
parentId?: string;
|
||||
path?: string;
|
||||
label: string;
|
||||
keywords: string[];
|
||||
icon?: string;
|
||||
children?: SearchIndexItem[];
|
||||
};
|
||||
|
||||
const rootMods = new Map(generated.map(item => [item.id, item]));
|
||||
|
||||
function walk(item: GeneratedSearchIndexItem) {
|
||||
// link inlining here
|
||||
for (const item of generated) {
|
||||
if (item.inlining) {
|
||||
for (const id of item.inlining) {
|
||||
const inline = rootMods.get(id);
|
||||
if (inline) {
|
||||
(item.children ??= []).push(inline);
|
||||
rootMods.delete(id);
|
||||
inline.parentId = item.id;
|
||||
} else {
|
||||
console.log('[Settings Search Index] Failed to inline', id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (const child of item.children ?? []) {
|
||||
walk(child);
|
||||
}
|
||||
}
|
||||
|
||||
for (const item of generated) {
|
||||
walk(item);
|
||||
}
|
||||
|
||||
export const searchIndexes: SearchIndexItem[] = generated;
|
||||
|
|
|
|||
2
packages/frontend/src/utility/virtual.d.ts
vendored
2
packages/frontend/src/utility/virtual.d.ts
vendored
|
|
@ -6,12 +6,12 @@
|
|||
declare module 'search-index:settings' {
|
||||
export type GeneratedSearchIndexItem = {
|
||||
id: string;
|
||||
parentId?: string;
|
||||
path?: string;
|
||||
label: string;
|
||||
keywords: string[];
|
||||
icon?: string;
|
||||
inlining?: string[];
|
||||
children?: GeneratedSearchIndexItem[];
|
||||
};
|
||||
|
||||
export const searchIndexes: GeneratedSearchIndexItem[];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue