Add tenant PWA help articles and links
This commit is contained in:
@@ -8,6 +8,7 @@ import { Pressable } from '@tamagui/react-native-web-lite';
|
||||
import toast from 'react-hot-toast';
|
||||
import { MobileShell, HeaderActionButton } from './components/MobileShell';
|
||||
import { MobileCard, CTAButton, PillBadge } from './components/Primitives';
|
||||
import { ContextHelpLink } from './components/ContextHelpLink';
|
||||
import {
|
||||
createTenantBillingPortalSession,
|
||||
getTenantPackagesOverview,
|
||||
@@ -268,6 +269,10 @@ export default function MobileBillingPage() {
|
||||
<CTAButton label={t('billing.actions.refresh', 'Refresh')} tone="ghost" onPress={load} />
|
||||
</MobileCard>
|
||||
) : null}
|
||||
|
||||
<XStack justifyContent="flex-end">
|
||||
<ContextHelpLink slug="billing-packages-exports" />
|
||||
</XStack>
|
||||
{pendingCheckout && (checkoutStatus === 'failed' || checkoutStatus === 'cancelled') ? (
|
||||
<MobileCard borderColor={danger} backgroundColor="$red1" space="$2">
|
||||
<XStack alignItems="center" justifyContent="space-between">
|
||||
|
||||
@@ -562,7 +562,7 @@ export default function MobileBrandingPage() {
|
||||
) : null}
|
||||
|
||||
<XStack justifyContent="flex-end">
|
||||
<ContextHelpLink slug="event-prep-checklist" />
|
||||
<ContextHelpLink slug="event-branding-assets" />
|
||||
</XStack>
|
||||
|
||||
<MobileCard space="$2">
|
||||
|
||||
@@ -7,6 +7,7 @@ import { Switch } from '@tamagui/switch';
|
||||
import toast from 'react-hot-toast';
|
||||
import { MobileShell, HeaderActionButton } from './components/MobileShell';
|
||||
import { MobileCard, CTAButton, PillBadge, SkeletonCard } from './components/Primitives';
|
||||
import { ContextHelpLink } from './components/ContextHelpLink';
|
||||
import { MobileSelect } from './components/FormControls';
|
||||
import {
|
||||
DataExportSummary,
|
||||
@@ -371,6 +372,9 @@ export default function MobileDataExportsPage() {
|
||||
</HeaderActionButton>
|
||||
}
|
||||
>
|
||||
<XStack justifyContent="flex-end">
|
||||
<ContextHelpLink slug="billing-packages-exports" />
|
||||
</XStack>
|
||||
<DataExportsPanel onRefreshReady={setRefresh} />
|
||||
</MobileShell>
|
||||
);
|
||||
|
||||
@@ -11,6 +11,7 @@ import { MobileShell } from './components/MobileShell';
|
||||
import { MobileCard, CTAButton, FloatingActionButton } from './components/Primitives';
|
||||
import { MobileDateInput, MobileField, MobileInput, MobileSelect, MobileTextArea } from './components/FormControls';
|
||||
import { LegalConsentSheet } from './components/LegalConsentSheet';
|
||||
import { ContextHelpLink } from './components/ContextHelpLink';
|
||||
import {
|
||||
createEvent,
|
||||
getEvent,
|
||||
@@ -402,6 +403,10 @@ export default function MobileEventFormPage() {
|
||||
</MobileCard>
|
||||
) : null}
|
||||
|
||||
<XStack justifyContent="flex-end">
|
||||
<ContextHelpLink slug="event-settings" />
|
||||
</XStack>
|
||||
|
||||
<MobileCard space="$3">
|
||||
<MobileField label={requiredLabel(t('eventForm.fields.name.label', 'Event name'))}>
|
||||
<MobileInput
|
||||
|
||||
@@ -8,6 +8,7 @@ import { Pressable } from '@tamagui/react-native-web-lite';
|
||||
import { MobileShell, HeaderActionButton } from './components/MobileShell';
|
||||
import { MobileCard, CTAButton, PillBadge, SkeletonCard } from './components/Primitives';
|
||||
import { MobileField, MobileInput, MobileSelect } from './components/FormControls';
|
||||
import { ContextHelpLink } from './components/ContextHelpLink';
|
||||
import { EventMember, getEventMembers, inviteEventMember, removeEventMember, trackOnboarding } from '../api';
|
||||
import { isAuthError } from '../auth/tokens';
|
||||
import { getApiErrorMessage } from '../lib/apiError';
|
||||
@@ -158,6 +159,10 @@ export default function MobileEventMembersPage() {
|
||||
</MobileCard>
|
||||
) : null}
|
||||
|
||||
<XStack justifyContent="flex-end">
|
||||
<ContextHelpLink slug="event-team-invites" />
|
||||
</XStack>
|
||||
|
||||
<MobileCard space="$3">
|
||||
<Text fontSize="$md" fontWeight="800" color={textStrong}>
|
||||
{t('events.members.inviteTitle', 'Invite Member')}
|
||||
|
||||
@@ -1164,7 +1164,7 @@ export default function MobileEventTasksPage() {
|
||||
width="100%"
|
||||
>
|
||||
<XStack justifyContent="flex-end" marginBottom="$2">
|
||||
<ContextHelpLink slug="event-prep-checklist" />
|
||||
<ContextHelpLink slug="event-tasks-setup" />
|
||||
</XStack>
|
||||
<Tabs.List
|
||||
borderRadius={16}
|
||||
|
||||
@@ -103,7 +103,7 @@ export default function MobileQrPrintPage() {
|
||||
) : null}
|
||||
|
||||
<XStack justifyContent="flex-end">
|
||||
<ContextHelpLink slug="event-prep-checklist" />
|
||||
<ContextHelpLink slug="guest-access-qr" />
|
||||
</XStack>
|
||||
|
||||
<MobileCard space="$3" alignItems="center">
|
||||
|
||||
@@ -88,6 +88,22 @@ vi.mock('@tamagui/switch', () => ({
|
||||
),
|
||||
}));
|
||||
|
||||
vi.mock('@tamagui/react-native-web-lite', () => ({
|
||||
Pressable: ({
|
||||
children,
|
||||
onPress,
|
||||
...rest
|
||||
}: {
|
||||
children: React.ReactNode;
|
||||
onPress?: () => void;
|
||||
[key: string]: unknown;
|
||||
}) => (
|
||||
<button type="button" onClick={onPress} {...rest}>
|
||||
{children}
|
||||
</button>
|
||||
),
|
||||
}));
|
||||
|
||||
vi.mock('../theme', () => ({
|
||||
useAdminTheme: () => ({
|
||||
text: '#111827',
|
||||
|
||||
Reference in New Issue
Block a user