mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-11-14 00:01:03 +00:00
8b6a65023f
Brings the native apps branch up to dev (NestJS-only server, MikroORM
repositories, tracked sessions, per-domain locales, the lint ratchets) and
ports its new code onto that architecture:
- server: /api/auth/native moves onto injected services. The session is
minted by the auth domain's new LoginSessionService (login bookkeeping and
SessionsService.issue in one transaction), the one-time codes live behind a
NativeHandoffStore port with a capped in-memory implementation that drops
expired codes on write instead of running a timer, both routes declare
response contracts, and the exchange answers { success: true }. Unit and
e2e suites run on createTestModule and the ORM factories.
- shared: native strings for az, et, sk and th, native wired into every
locale, the address placeholder as a full URL.
- client: the account and export changes go into dev's shared hooks
(useAccountSettings, useTripExport), the native server card is a
desktop/phone pair on useNativeServer, the hand-off call moves out of the
page hook into native/, best-effort native failures go through
reportError instead of the console, and the address screen is known to
knip and lint:i18n-keys.
- package-lock.json regenerated on Linux.
26 lines
947 B
TypeScript
26 lines
947 B
TypeScript
import { Server } from 'lucide-react';
|
|
import React from 'react';
|
|
|
|
import { useTranslation } from '../../i18n';
|
|
import Section from './Section';
|
|
import { useNativeServer } from './useNativeServer';
|
|
|
|
/** Only inside the iOS/Android app: which server it talks to, and the way to another one. */
|
|
export default function NativeServerSection(): React.ReactElement | null {
|
|
const { t } = useTranslation();
|
|
const { host, changeServer } = useNativeServer();
|
|
if (!host) return null;
|
|
return (
|
|
<Section title={t('native.settings.server')} icon={Server}>
|
|
<p className="text-body text-content-secondary">{t('native.settings.serverHint', { server: host })}</p>
|
|
<button
|
|
type="button"
|
|
onClick={changeServer}
|
|
className="rounded-lg border border-edge bg-surface-card px-4 py-2 text-body font-medium text-content hover:bg-surface-hover"
|
|
>
|
|
{t('native.changeServer')}
|
|
</button>
|
|
</Section>
|
|
);
|
|
}
|