Compare commits
5
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3cdc4951e0 | ||
|
|
f839796585 | ||
|
|
e25135934f | ||
|
|
02a8004fd5 | ||
|
|
6b1d2e1943 |
No files matched your search
@@ -313,6 +313,22 @@ const showOnboarding = ref(false)
|
|||||||
const onboardingMode = ref('main')
|
const onboardingMode = ref('main')
|
||||||
const onboardingSettings = ref(null)
|
const onboardingSettings = ref(null)
|
||||||
const onboardingReplay = ref(false)
|
const onboardingReplay = ref(false)
|
||||||
|
|
||||||
|
// Expand the sidebar while the onboarding tour is visible so steps that point
|
||||||
|
// at sidebar entries (account card, announcement, create instance) can find
|
||||||
|
// their targets. The previous state is restored when the tour ends.
|
||||||
|
let sidebarStateBeforeOnboarding: boolean | undefined
|
||||||
|
watch(showOnboarding, (visible) => {
|
||||||
|
if (visible) {
|
||||||
|
sidebarStateBeforeOnboarding = sidebarToggled.value
|
||||||
|
sidebarToggled.value = true
|
||||||
|
setSidebarExpanded(true)
|
||||||
|
} else if (sidebarStateBeforeOnboarding !== undefined) {
|
||||||
|
sidebarToggled.value = sidebarStateBeforeOnboarding
|
||||||
|
setSidebarExpanded(sidebarStateBeforeOnboarding)
|
||||||
|
sidebarStateBeforeOnboarding = undefined
|
||||||
|
}
|
||||||
|
})
|
||||||
const nativeDecorations = ref(false)
|
const nativeDecorations = ref(false)
|
||||||
|
|
||||||
const os = ref('')
|
const os = ref('')
|
||||||
@@ -2509,7 +2525,10 @@ provideAppUpdateDownloadProgress(appUpdateDownload)
|
|||||||
>
|
>
|
||||||
<div id="sidebar-teleport-target" class="sidebar-teleport-content contents"></div>
|
<div id="sidebar-teleport-target" class="sidebar-teleport-content contents"></div>
|
||||||
<div class="sidebar-default-content hidden" :class="{ 'sidebar-enabled': sidebarVisible }">
|
<div class="sidebar-default-content hidden" :class="{ 'sidebar-enabled': sidebarVisible }">
|
||||||
<div class="p-4 border-0 border-b-[1px] border-[--brand-gradient-border] border-solid">
|
<div
|
||||||
|
data-onboarding-id="sidebar-accounts"
|
||||||
|
class="p-4 border-0 border-b-[1px] border-[--brand-gradient-border] border-solid"
|
||||||
|
>
|
||||||
<h3 class="text-base text-primary font-medium m-0">
|
<h3 class="text-base text-primary font-medium m-0">
|
||||||
{{ formatMessage(messages.userInformation) }}
|
{{ formatMessage(messages.userInformation) }}
|
||||||
</h3>
|
</h3>
|
||||||
|
|||||||
@@ -32,6 +32,36 @@ export const ANNOUNCEMENT_CHANGE_TYPES: readonly AnnouncementChangeType[] = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
export const launcherAnnouncements: readonly LauncherAnnouncement[] = [
|
export const launcherAnnouncements: readonly LauncherAnnouncement[] = [
|
||||||
|
{
|
||||||
|
id: 'launcher-1.0.1-beta6',
|
||||||
|
version: '1.0.1-beta6',
|
||||||
|
publishedAt: '2026-10-01',
|
||||||
|
title: {
|
||||||
|
'en-US': 'Starlight Launcher 1.0.1-beta6',
|
||||||
|
'zh-CN': 'Starlight Launcher 1.0.1-beta6',
|
||||||
|
},
|
||||||
|
changes: {
|
||||||
|
fixed: [
|
||||||
|
{
|
||||||
|
'en-US':
|
||||||
|
'Fixed the onboarding tour skipping steps automatically, getting stuck, or not navigating between steps; the tour bubble no longer covers the left navigation bar.',
|
||||||
|
'zh-CN':
|
||||||
|
'修复新手导览自动跳过、卡住或不跳转的问题;导览气泡不再遮挡左侧导航栏。',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'en-US':
|
||||||
|
'Fixed the onboarding tour target on the minimal home layout.',
|
||||||
|
'zh-CN': '修复精简主页下导览目标找不到的问题。',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
added: [
|
||||||
|
{
|
||||||
|
'en-US': 'Feature flag names in developer settings are now shown in Chinese.',
|
||||||
|
'zh-CN': '开发者设置中的功能开关名现在显示中文。',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: 'launcher-1.0.1-beta5',
|
id: 'launcher-1.0.1-beta5',
|
||||||
version: '1.0.1-beta5',
|
version: '1.0.1-beta5',
|
||||||
|
|||||||
@@ -201,7 +201,7 @@ onUnmounted(() => {
|
|||||||
data-onboarding-id="home-instances"
|
data-onboarding-id="home-instances"
|
||||||
class="minimal-home-stage flex min-w-0 items-center justify-center px-6 pb-14 pt-8"
|
class="minimal-home-stage flex min-w-0 items-center justify-center px-6 pb-14 pt-8"
|
||||||
>
|
>
|
||||||
<div class="flex w-full max-w-3xl flex-col items-center text-center">
|
<div data-onboarding-id="home-widget-grid" class="flex w-full max-w-3xl flex-col items-center text-center">
|
||||||
<HomeGreeting :player-name="playerName" variant="minimal" />
|
<HomeGreeting :player-name="playerName" variant="minimal" />
|
||||||
|
|
||||||
<template v-if="selectedInstance">
|
<template v-if="selectedInstance">
|
||||||
|
|||||||
@@ -170,7 +170,7 @@ const {
|
|||||||
top: auto !important;
|
top: auto !important;
|
||||||
right: 0;
|
right: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: 0 !important;
|
left: var(--left-bar-width, 4rem) !important;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
width: auto;
|
width: auto;
|
||||||
min-height: 0;
|
min-height: 0;
|
||||||
|
|||||||
@@ -381,7 +381,7 @@ export const onboardingTours: Record<OnboardingMode, OnboardingStep[]> = {
|
|||||||
),
|
),
|
||||||
inspect(
|
inspect(
|
||||||
'account-login',
|
'account-login',
|
||||||
'account-entry',
|
'sidebar-accounts',
|
||||||
onboardingMessages.accountLoginTitle,
|
onboardingMessages.accountLoginTitle,
|
||||||
onboardingMessages.accountLoginDescription,
|
onboardingMessages.accountLoginDescription,
|
||||||
),
|
),
|
||||||
@@ -391,11 +391,15 @@ export const onboardingTours: Record<OnboardingMode, OnboardingStep[]> = {
|
|||||||
onboardingMessages.announcementTitle,
|
onboardingMessages.announcementTitle,
|
||||||
onboardingMessages.announcementDescription,
|
onboardingMessages.announcementDescription,
|
||||||
),
|
),
|
||||||
inspect(
|
step(
|
||||||
'create-starlight',
|
'create-starlight',
|
||||||
'create-instance',
|
'navigate',
|
||||||
onboardingMessages.createStarlightTitle,
|
copy(
|
||||||
onboardingMessages.createStarlightDescription,
|
onboardingMessages.createStarlightTitle,
|
||||||
|
onboardingMessages.createStarlightDescription,
|
||||||
|
onboardingMessages.clickCreate,
|
||||||
|
),
|
||||||
|
control('create-instance', '/create'),
|
||||||
),
|
),
|
||||||
step(
|
step(
|
||||||
'discover-navigation',
|
'discover-navigation',
|
||||||
@@ -405,7 +409,7 @@ export const onboardingTours: Record<OnboardingMode, OnboardingStep[]> = {
|
|||||||
onboardingMessages.discoverDescription,
|
onboardingMessages.discoverDescription,
|
||||||
onboardingMessages.clickDiscover,
|
onboardingMessages.clickDiscover,
|
||||||
),
|
),
|
||||||
control('nav-discover', '/browse/modpack'),
|
control('nav-discover', '/browse'),
|
||||||
),
|
),
|
||||||
inspect(
|
inspect(
|
||||||
'discover-content',
|
'discover-content',
|
||||||
|
|||||||
@@ -284,7 +284,7 @@ export function useOnboardingTour(
|
|||||||
if (clickedElement && handleBranchClick(clickedElement)) return
|
if (clickedElement && handleBranchClick(clickedElement)) return
|
||||||
if (!targetElement.value?.contains(event.target as Node)) return
|
if (!targetElement.value?.contains(event.target as Node)) return
|
||||||
|
|
||||||
if (step.value.expectedPath && route.path !== step.value.expectedPath) {
|
if (step.value.expectedPath && !route.path.startsWith(step.value.expectedPath)) {
|
||||||
waitingForRoute.value = true
|
waitingForRoute.value = true
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -301,7 +301,7 @@ export function useOnboardingTour(
|
|||||||
() => route.path,
|
() => route.path,
|
||||||
(path) => {
|
(path) => {
|
||||||
if (!waitingForRoute.value || !step.value.expectedPath) return
|
if (!waitingForRoute.value || !step.value.expectedPath) return
|
||||||
if (path !== step.value.expectedPath) return
|
if (!path.startsWith(step.value.expectedPath)) return
|
||||||
waitingForRoute.value = false
|
waitingForRoute.value = false
|
||||||
void advance()
|
void advance()
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -54,6 +54,24 @@ const messages = defineMessages({
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const featureFlagLabels: Record<FeatureFlag, string> = {
|
||||||
|
project_background: '项目背景',
|
||||||
|
page_path: '页面路径',
|
||||||
|
worlds_tab: '世界标签页',
|
||||||
|
worlds_in_home: '主页显示世界',
|
||||||
|
server_project_qa: '服务器项目问答',
|
||||||
|
show_version_environment_column: '显示版本环境列',
|
||||||
|
server_ram_as_bytes_always_on: '服务器内存始终按字节显示',
|
||||||
|
always_show_app_controls: '始终显示窗口控件',
|
||||||
|
skip_non_essential_warnings: '跳过非必要警告',
|
||||||
|
skip_unknown_pack_warning: '跳过未知整合包警告',
|
||||||
|
i18n_debug: '国际化调试',
|
||||||
|
show_instance_play_time: '显示实例游玩时间',
|
||||||
|
page_transitions: '页面切换动画',
|
||||||
|
advanced_filters_collapsed: '高级筛选默认折叠',
|
||||||
|
auto_install_dependencies: '自动安装依赖',
|
||||||
|
}
|
||||||
|
|
||||||
const settings = ref(await getSettings())
|
const settings = ref(await getSettings())
|
||||||
const options = ref<FeatureFlag[]>(Object.keys(DEFAULT_FEATURE_FLAGS))
|
const options = ref<FeatureFlag[]>(Object.keys(DEFAULT_FEATURE_FLAGS))
|
||||||
|
|
||||||
@@ -85,7 +103,7 @@ watch(
|
|||||||
<template>
|
<template>
|
||||||
<SettingsSection>
|
<SettingsSection>
|
||||||
<SettingsRow v-for="option in options" :key="option">
|
<SettingsRow v-for="option in options" :key="option">
|
||||||
<template #label>{{ option.replaceAll('_', ' ') }}</template>
|
<template #label>{{ featureFlagLabels[option] ?? option }}</template>
|
||||||
<template #control>
|
<template #control>
|
||||||
<div class="flex items-center gap-2">
|
<div class="flex items-center gap-2">
|
||||||
<Button
|
<Button
|
||||||
@@ -124,4 +142,4 @@ watch(
|
|||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
</SettingsSection>
|
</SettingsSection>
|
||||||
</template>
|
</template>
|
||||||
@@ -1,6 +1,33 @@
|
|||||||
{
|
{
|
||||||
"updated_at": "2026-10-01T01:32:20.780Z",
|
"updated_at": "2026-10-01T05:02:05.765Z",
|
||||||
"announcements": [
|
"announcements": [
|
||||||
|
{
|
||||||
|
"id": "launcher-1.0.1-beta6",
|
||||||
|
"version": "1.0.1-beta6",
|
||||||
|
"publishedAt": "2026-10-01",
|
||||||
|
"title": {
|
||||||
|
"en-US": "Starlight Launcher 1.0.1-beta6",
|
||||||
|
"zh-CN": "Starlight Launcher 1.0.1-beta6"
|
||||||
|
},
|
||||||
|
"changes": {
|
||||||
|
"fixed": [
|
||||||
|
{
|
||||||
|
"en-US": "Fixed the onboarding tour skipping steps automatically, getting stuck, or not navigating between steps; the tour bubble no longer covers the left navigation bar.",
|
||||||
|
"zh-CN": "修复新手导览自动跳过、卡住或不跳转的问题;导览气泡不再遮挡左侧导航栏。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"en-US": "Fixed the onboarding tour target on the minimal home layout.",
|
||||||
|
"zh-CN": "修复精简主页下导览目标找不到的问题。"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"added": [
|
||||||
|
{
|
||||||
|
"en-US": "Feature flag names in developer settings are now shown in Chinese.",
|
||||||
|
"zh-CN": "开发者设置中的功能开关名现在显示中文。"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": "launcher-1.0.1-beta5",
|
"id": "launcher-1.0.1-beta5",
|
||||||
"version": "1.0.1-beta5",
|
"version": "1.0.1-beta5",
|
||||||
|
|||||||
Reference in new issue
Block a user