feat(apps): add missing help, feedback, profile, themes, auth pages for cross-app consistency

New pages created:
- Help: citycorners, matrix (with i18n help content)
- Feedback: citycorners, matrix, photos, planta, questions
- Profile: citycorners, mukke, photos, planta, questions, todo, zitare
- Themes: citycorners, photos, planta, questions, zitare
- Forgot-password: citycorners
- Reset-password: citycorners, picture, storage

PillNavigation updated in all 18 layouts:
- helpHref, profileHref, themesHref, feedbackHref consistently set
- Dependencies added (shared-profile-ui, shared-theme-ui, shared-feedback-ui)

All 17 standard apps now have: help, feedback, profile, themes, settings,
forgot-password, reset-password, offline pages. Matrix excluded for profile/themes/auth
(uses own Matrix protocol auth).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Till JS 2026-03-26 14:33:34 +01:00
parent 40ace53867
commit cf9cbebd34
46 changed files with 953 additions and 0 deletions

View file

@ -41,6 +41,10 @@
"@manacore/shared-auth": "workspace:*",
"@manacore/shared-branding": "workspace:*",
"@manacore/shared-error-tracking": "workspace:*",
"@manacore/shared-feedback-service": "workspace:*",
"@manacore/shared-feedback-ui": "workspace:*",
"@manacore/shared-help-types": "workspace:*",
"@manacore/shared-help-ui": "workspace:*",
"@manacore/shared-i18n": "workspace:*",
"@manacore/shared-icons": "workspace:*",
"@manacore/shared-tailwind": "workspace:*",

View file

@ -417,6 +417,7 @@
{appItems}
{userEmail}
settingsHref="/settings"
helpHref="/help"
allAppsHref="https://mana.how"
/>
{/if}

View file

@ -0,0 +1,26 @@
<script lang="ts">
import { browser } from '$app/environment';
import { FeedbackPage } from '@manacore/shared-feedback-ui';
import { createFeedbackService } from '@manacore/shared-feedback-service';
import { matrixStore } from '$lib/matrix';
function getAuthUrl(): string {
if (browser && typeof window !== 'undefined') {
const injectedUrl = (window as unknown as { __PUBLIC_MANA_CORE_AUTH_URL__?: string })
.__PUBLIC_MANA_CORE_AUTH_URL__;
return injectedUrl || 'http://localhost:3001';
}
return 'http://localhost:3001';
}
const feedbackService = createFeedbackService({
appId: 'matrix',
apiUrl: getAuthUrl(),
});
</script>
<FeedbackPage
{feedbackService}
appName="Manalink"
currentUserId={matrixStore.userId || undefined}
/>

View file

@ -0,0 +1,32 @@
<script lang="ts">
import { goto } from '$app/navigation';
import { locale } from 'svelte-i18n';
import { HelpPage, getHelpTranslations } from '@manacore/shared-help-ui';
import { getManalinkHelpContent } from '$lib/content/help/index.js';
const content = $derived(getManalinkHelpContent($locale ?? 'de'));
const translations = $derived(
getHelpTranslations($locale ?? 'de', {
subtitle:
$locale === 'de'
? 'Finde Antworten und lerne Manalink kennen'
: 'Find answers and learn how to use Manalink',
})
);
</script>
<svelte:head>
<title>{translations.title} | Manalink</title>
</svelte:head>
<HelpPage
{content}
appName="Manalink"
appId="matrix"
{translations}
showBackButton
onBack={() => goto('/')}
showGettingStarted={false}
showChangelog={false}
defaultSection="faq"
/>