mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-11-14 08:11:03 +00:00
feat(mobile): page transitions, pull-to-refresh, share sheet and haptics
Page transitions: on the phone, pages move like a native navigation stack, built on the View Transitions API (mobile/routeTransition.ts). A page opened from another slides in from the trailing edge, back slides it away, and switching between the dock's sections cross-fades while the dock stands still. Lazy routes do not flash their skeleton: the swap waits, behind the frozen snapshot, until the new page rendered. The edge-swipe back gesture already moves the page and skips the transition. RTL mirrors the motion, reduced motion and desktop get none. Pull-to-refresh on the mobile dashboard: the page follows the finger with resistance, ticks once past the threshold and re-reads trips and notifications quietly, without a loading state. Share: trip share and invite links and the journey link get a share button next to copy, opening the system share sheet (Capacitor Share in the apps, Web Share in browsers that have it). Haptics: a selection click for switches and segmented controls, a tick when a sheet is flung closed, and a firmer bump for the chat's long press. Theme lint: this branch's new screens use the type and z-index tokens, the Vacay company tint is a token, and the baseline is lowered to the new counts.
This commit is contained in:
@@ -89,5 +89,6 @@ const common: TranslationStrings = {
|
||||
'common.errorPluginTitle': 'تعذّر عرض هذه الإضافة',
|
||||
'common.needsConnection': 'يتطلب هذا اتصالاً. حاول مرة أخرى عندما يعود TREK للاتصال.',
|
||||
'common.errorDetails': 'التفاصيل',
|
||||
'common.share': 'مشاركة',
|
||||
};
|
||||
export default common;
|
||||
|
||||
@@ -81,5 +81,6 @@ const common: TranslationStrings = {
|
||||
'common.errorPluginTitle': 'Bu plagini göstərmək mümkün olmadı',
|
||||
'common.needsConnection': 'Bunun üçün bağlantı lazımdır. TREK yenidən onlayn olduqda bir daha cəhd edin.',
|
||||
'common.errorDetails': 'Təfərrüatlar',
|
||||
'common.share': 'Paylaş',
|
||||
};
|
||||
export default common;
|
||||
|
||||
@@ -82,5 +82,6 @@ const common: TranslationStrings = {
|
||||
'common.errorPluginTitle': 'Não foi possível exibir este plugin',
|
||||
'common.needsConnection': 'Isso precisa de conexão. Tente de novo quando o TREK voltar a ficar online.',
|
||||
'common.errorDetails': 'Detalhes',
|
||||
'common.share': 'Compartilhar',
|
||||
};
|
||||
export default common;
|
||||
|
||||
@@ -83,5 +83,6 @@ const common: TranslationStrings = {
|
||||
'common.errorPluginTitle': "No s'ha pogut mostrar aquest connector",
|
||||
'common.needsConnection': 'Això necessita connexió. Torna-ho a provar quan TREK torni a estar en línia.',
|
||||
'common.errorDetails': 'Detalls',
|
||||
'common.share': 'Comparteix',
|
||||
};
|
||||
export default common;
|
||||
|
||||
@@ -83,5 +83,6 @@ const common: TranslationStrings = {
|
||||
'common.errorPluginTitle': 'Tento plugin se nepodařilo zobrazit',
|
||||
'common.needsConnection': 'Na tohle je potřeba připojení. Zkus to znovu, až bude TREK zase online.',
|
||||
'common.errorDetails': 'Podrobnosti',
|
||||
'common.share': 'Sdílet',
|
||||
};
|
||||
export default common;
|
||||
|
||||
@@ -81,6 +81,7 @@ const common: TranslationStrings = {
|
||||
'TREK wurde aktualisiert, während dieser Tab offen war. Lade neu, um die neue Version zu erhalten.',
|
||||
'common.errorPluginTitle': 'Dieses Plugin konnte nicht angezeigt werden',
|
||||
'common.needsConnection': 'Dafür braucht es eine Verbindung. Versuch es noch einmal, sobald TREK wieder online ist.',
|
||||
'common.errorDetails': 'Details', // same-as-en
|
||||
'common.errorDetails': 'Details', // same-as-en,
|
||||
'common.share': 'Teilen',
|
||||
};
|
||||
export default common;
|
||||
|
||||
@@ -81,5 +81,6 @@ const common: TranslationStrings = {
|
||||
'common.errorPluginTitle': 'This plugin could not be shown',
|
||||
'common.needsConnection': 'This needs a connection. Try again once TREK is back online.',
|
||||
'common.errorDetails': 'Details',
|
||||
'common.share': 'Share',
|
||||
};
|
||||
export default common;
|
||||
|
||||
@@ -82,5 +82,6 @@ const common: TranslationStrings = {
|
||||
'common.errorPluginTitle': 'No se pudo mostrar este plugin',
|
||||
'common.needsConnection': 'Esto necesita conexión. Vuelve a intentarlo cuando TREK esté de nuevo en línea.',
|
||||
'common.errorDetails': 'Detalles',
|
||||
'common.share': 'Compartir',
|
||||
};
|
||||
export default common;
|
||||
|
||||
@@ -82,5 +82,6 @@ const common: TranslationStrings = {
|
||||
'common.errorPluginTitle': 'Seda pluginat ei saanud kuvada',
|
||||
'common.needsConnection': 'Selleks on vaja ühendust. Proovi uuesti, kui TREK on taas võrgus.',
|
||||
'common.errorDetails': 'Üksikasjad',
|
||||
'common.share': 'Jaga',
|
||||
};
|
||||
export default common;
|
||||
|
||||
@@ -82,5 +82,6 @@ const common: TranslationStrings = {
|
||||
'common.errorPluginTitle': "Ce plugin n'a pas pu être affiché",
|
||||
'common.needsConnection': 'Cela nécessite une connexion. Réessaie dès que TREK sera de nouveau en ligne.',
|
||||
'common.errorDetails': 'Détails',
|
||||
'common.share': 'Partager',
|
||||
};
|
||||
export default common;
|
||||
|
||||
@@ -82,5 +82,6 @@ const common: TranslationStrings = {
|
||||
'common.errorPluginTitle': 'Δεν ήταν δυνατή η εμφάνιση αυτού του πρόσθετου',
|
||||
'common.needsConnection': 'Αυτό χρειάζεται σύνδεση. Δοκίμασε ξανά μόλις το TREK συνδεθεί ξανά.',
|
||||
'common.errorDetails': 'Λεπτομέρειες',
|
||||
'common.share': 'Κοινοποίηση',
|
||||
};
|
||||
export default common;
|
||||
|
||||
@@ -83,6 +83,7 @@ const common: TranslationStrings = {
|
||||
'common.errorPluginTitle': 'לא ניתן להציג את התוסף הזה',
|
||||
'common.needsConnection': 'הפעולה הזו דורשת חיבור. נסו שוב כש-TREK יחזור לרשת.',
|
||||
'common.errorDetails': 'פרטים',
|
||||
'common.share': 'שיתוף',
|
||||
};
|
||||
|
||||
export default common;
|
||||
|
||||
@@ -81,5 +81,6 @@ const common: TranslationStrings = {
|
||||
'common.errorPluginTitle': 'Ezt a bővítményt nem sikerült megjeleníteni',
|
||||
'common.needsConnection': 'Ehhez kapcsolat kell. Próbáld újra, amint a TREK újra online lesz.',
|
||||
'common.errorDetails': 'Részletek',
|
||||
'common.share': 'Megosztás',
|
||||
};
|
||||
export default common;
|
||||
|
||||
@@ -79,5 +79,6 @@ const common: TranslationStrings = {
|
||||
'common.errorPluginTitle': 'Plugin ini tidak dapat ditampilkan',
|
||||
'common.needsConnection': 'Ini memerlukan koneksi. Coba lagi begitu TREK kembali online.',
|
||||
'common.errorDetails': 'Detail',
|
||||
'common.share': 'Bagikan',
|
||||
};
|
||||
export default common;
|
||||
|
||||
@@ -82,5 +82,6 @@ const common: TranslationStrings = {
|
||||
'common.errorPluginTitle': 'Impossibile mostrare questo plugin',
|
||||
'common.needsConnection': 'Serve una connessione. Riprova quando TREK tornerà online.',
|
||||
'common.errorDetails': 'Dettagli',
|
||||
'common.share': 'Condividi',
|
||||
};
|
||||
export default common;
|
||||
|
||||
@@ -80,5 +80,6 @@ const common: TranslationStrings = {
|
||||
'common.errorPluginTitle': 'このプラグインを表示できませんでした',
|
||||
'common.needsConnection': 'この操作には接続が必要です。TREK がオンラインに戻ってから、もう一度お試しください。',
|
||||
'common.errorDetails': '詳細',
|
||||
'common.share': '共有',
|
||||
};
|
||||
export default common;
|
||||
|
||||
@@ -79,5 +79,6 @@ const common: TranslationStrings = {
|
||||
'common.errorPluginTitle': '이 플러그인을 표시할 수 없습니다',
|
||||
'common.needsConnection': '연결이 필요한 작업입니다. TREK가 다시 온라인이 되면 다시 시도하세요.',
|
||||
'common.errorDetails': '세부 정보',
|
||||
'common.share': '공유',
|
||||
};
|
||||
export default common;
|
||||
|
||||
@@ -81,6 +81,7 @@ const common: TranslationStrings = {
|
||||
'TREK is bijgewerkt terwijl dit tabblad open stond. Herlaad om de nieuwe versie te krijgen.',
|
||||
'common.errorPluginTitle': 'Deze plug-in kon niet worden getoond',
|
||||
'common.needsConnection': 'Hiervoor is een verbinding nodig. Probeer het opnieuw zodra TREK weer online is.',
|
||||
'common.errorDetails': 'Details', // same-as-en
|
||||
'common.errorDetails': 'Details', // same-as-en,
|
||||
'common.share': 'Delen',
|
||||
};
|
||||
export default common;
|
||||
|
||||
@@ -85,5 +85,6 @@ const common: TranslationStrings = {
|
||||
'common.errorPluginTitle': 'Nie udało się wyświetlić tej wtyczki',
|
||||
'common.needsConnection': 'To wymaga połączenia. Spróbuj ponownie, gdy TREK znów będzie online.',
|
||||
'common.errorDetails': 'Szczegóły',
|
||||
'common.share': 'Udostępnij',
|
||||
};
|
||||
export default common;
|
||||
|
||||
@@ -86,5 +86,6 @@ const common: TranslationStrings = {
|
||||
'common.errorPluginTitle': 'Не удалось показать этот плагин',
|
||||
'common.needsConnection': 'Для этого нужно подключение. Попробуйте ещё раз, когда TREK снова будет онлайн.',
|
||||
'common.errorDetails': 'Подробности',
|
||||
'common.share': 'Поделиться',
|
||||
};
|
||||
export default common;
|
||||
|
||||
@@ -84,5 +84,6 @@ const common: TranslationStrings = {
|
||||
'common.errorPluginTitle': 'Tento plugin sa nepodarilo zobraziť',
|
||||
'common.needsConnection': 'Na toto je potrebné pripojenie. Skús to znova, keď bude TREK opäť online.',
|
||||
'common.errorDetails': 'Podrobnosti',
|
||||
'common.share': 'Zdieľať',
|
||||
};
|
||||
export default common;
|
||||
|
||||
@@ -82,5 +82,6 @@ const common: TranslationStrings = {
|
||||
'common.errorPluginTitle': 'Det här tillägget kunde inte visas',
|
||||
'common.needsConnection': 'Det här kräver en anslutning. Försök igen när TREK är online igen.',
|
||||
'common.errorDetails': 'Detaljer',
|
||||
'common.share': 'Dela',
|
||||
};
|
||||
export default common;
|
||||
|
||||
@@ -79,5 +79,6 @@ const common: TranslationStrings = {
|
||||
'common.errorPluginTitle': 'ไม่สามารถแสดงปลั๊กอินนี้ได้',
|
||||
'common.needsConnection': 'การทำงานนี้ต้องใช้การเชื่อมต่อ ลองอีกครั้งเมื่อ TREK กลับมาออนไลน์',
|
||||
'common.errorDetails': 'รายละเอียด',
|
||||
'common.share': 'แชร์',
|
||||
};
|
||||
export default common;
|
||||
|
||||
@@ -81,5 +81,6 @@ const common: TranslationStrings = {
|
||||
'common.errorPluginTitle': 'Bu eklenti gösterilemedi',
|
||||
'common.needsConnection': 'Bunun için bağlantı gerekiyor. TREK yeniden çevrimiçi olduğunda tekrar dene.',
|
||||
'common.errorDetails': 'Ayrıntılar',
|
||||
'common.share': 'Paylaş',
|
||||
};
|
||||
export default common;
|
||||
|
||||
@@ -85,5 +85,6 @@ const common: TranslationStrings = {
|
||||
'common.errorPluginTitle': 'Не вдалося показати цей плагін',
|
||||
'common.needsConnection': "Для цього потрібне з'єднання. Спробуйте ще раз, коли TREK знову буде онлайн.",
|
||||
'common.errorDetails': 'Подробиці',
|
||||
'common.share': 'Поділитися',
|
||||
};
|
||||
export default common;
|
||||
|
||||
@@ -79,5 +79,6 @@ const common: TranslationStrings = {
|
||||
'common.errorPluginTitle': 'Không thể hiển thị plugin này',
|
||||
'common.needsConnection': 'Thao tác này cần kết nối. Hãy thử lại khi TREK trực tuyến trở lại.',
|
||||
'common.errorDetails': 'Chi tiết',
|
||||
'common.share': 'Chia sẻ',
|
||||
};
|
||||
export default common;
|
||||
|
||||
@@ -79,5 +79,6 @@ const common: TranslationStrings = {
|
||||
'common.errorPluginTitle': '無法顯示此外掛程式',
|
||||
'common.needsConnection': '此操作需要網路連線。請在 TREK 恢復連線後再試一次。',
|
||||
'common.errorDetails': '詳細資訊',
|
||||
'common.share': '分享',
|
||||
};
|
||||
export default common;
|
||||
|
||||
@@ -79,5 +79,6 @@ const common: TranslationStrings = {
|
||||
'common.errorPluginTitle': '无法显示此插件',
|
||||
'common.needsConnection': '此操作需要网络连接。请在 TREK 恢复联网后重试。',
|
||||
'common.errorDetails': '详细信息',
|
||||
'common.share': '分享',
|
||||
};
|
||||
export default common;
|
||||
|
||||
Reference in New Issue
Block a user