forked from timothymiller/t4-app
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'next-app-dir-experimental'
- Loading branch information
Showing
51 changed files
with
627 additions
and
501 deletions.
There are no files selected for viewing
File renamed without changes.
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
import { DataFetchingScreen } from 'app/features/data-fetching/screen' | ||
import { Metadata } from 'next' | ||
|
||
export const metadata: Metadata = { | ||
title: 'Data Fetching', | ||
} | ||
|
||
export default function Page() { | ||
return <DataFetchingScreen /> | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
html, | ||
body, | ||
#__next { | ||
width: 100%; | ||
/* To smooth any scrolling behavior */ | ||
-webkit-overflow-scrolling: touch; | ||
margin: 0px; | ||
padding: 0px; | ||
/* Allows content to fill the viewport and go beyond the bottom */ | ||
min-height: 100%; | ||
} | ||
#__next { | ||
flex-shrink: 0; | ||
flex-basis: auto; | ||
flex-direction: column; | ||
flex-grow: 1; | ||
display: flex; | ||
flex: 1; | ||
} | ||
html { | ||
scroll-behavior: smooth; | ||
/* Prevent text size change on orientation change https://gist.github.com/tfausak/2222823#file-ios-8-web-app-html-L138 */ | ||
-webkit-text-size-adjust: 100%; | ||
height: 100%; | ||
} | ||
body { | ||
display: flex; | ||
/* Allows you to scroll below the viewport; default value is visible */ | ||
overflow-y: auto; | ||
overscroll-behavior-y: none; | ||
text-rendering: optimizeLegibility; | ||
-webkit-font-smoothing: antialiased; | ||
-moz-osx-font-smoothing: grayscale; | ||
-ms-overflow-style: scrollbar; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,308 @@ | ||
if (typeof requestAnimationFrame === 'undefined') { | ||
globalThis.requestAnimationFrame = setImmediate | ||
} | ||
import '@tamagui/core/reset.css' | ||
import '@tamagui/font-inter/css/400.css' | ||
import '@tamagui/font-inter/css/700.css' | ||
|
||
import { Provider } from 'app/provider' | ||
import { StylesProvider } from './styles-provider' | ||
import { Metadata, Viewport } from 'next' | ||
|
||
if (process.env.NODE_ENV === 'production') { | ||
require('../public/tamagui.css') | ||
} | ||
|
||
const appUrl = `${process.env.NEXT_PUBLIC_APP_URL}` | ||
const title = `${process.env.NEXT_PUBLIC_METADATA_NAME}` | ||
const description = `${process.env.NEXT_PUBLIC_METADATA_DESCRIPTION}` | ||
|
||
export const viewport: Viewport = { | ||
width: 'device-width', | ||
initialScale: 1, | ||
themeColor: '#FFFFFF', | ||
// minimumScale: 1, | ||
// maximumScale: 1, | ||
// userScalable: false, | ||
} | ||
|
||
export const metadata: Metadata = { | ||
metadataBase: new URL(appUrl), | ||
title, | ||
description, | ||
openGraph: { | ||
type: 'website', | ||
url: appUrl, | ||
title, | ||
description, | ||
images: [ | ||
{ | ||
url: `${appUrl}/pwa/icons/apple-touch-icon.png`, | ||
width: 180, | ||
height: 180, | ||
alt: title, | ||
}, | ||
], | ||
}, | ||
appleWebApp: { | ||
title, | ||
statusBarStyle: 'black-translucent', | ||
}, | ||
icons: [ | ||
/* Favicons */ | ||
{ | ||
url: '/pwa/icons/favicon.ico', | ||
rel: 'icon', | ||
}, | ||
{ | ||
url: '/pwa/icons/favicon.ico', | ||
rel: 'shortcut icon', | ||
}, | ||
/* PWA App Icons for iOS */ | ||
{ | ||
url: '/pwa/icons/touch-icon-iphone.png', | ||
rel: 'apple-touch-icon', | ||
}, | ||
{ | ||
url: '/pwa/icons/touch-icon-ipad.png', | ||
sizes: '152x152', | ||
rel: 'apple-touch-icon', | ||
}, | ||
{ | ||
url: '/pwa/icons/touch-icon-iphone-retina.png', | ||
sizes: '180x180', | ||
rel: 'apple-touch-icon', | ||
}, | ||
{ | ||
url: '/pwa/icons/touch-icon-ipad-retina.png', | ||
sizes: '167x167', | ||
rel: 'apple-touch-icon', | ||
}, | ||
/* PWA Splash Screens for iOS */ | ||
{ | ||
url: '/pwa/splash-screens/iPhone_14_Pro_Max_landscape.png', | ||
media: | ||
'screen and (device-width: 430px) and (device-height: 932px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/iPhone_14_Pro_landscape.png', | ||
media: | ||
'screen and (device-width: 393px) and (device-height: 852px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/iPhone_14_Plus__iPhone_13_Pro_Max__iPhone_12_Pro_Max_landscape.png', | ||
media: | ||
'screen and (device-width: 428px) and (device-height: 926px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/iPhone_14__iPhone_13_Pro__iPhone_13__iPhone_12_Pro__iPhone_12_landscape.png', | ||
media: | ||
'screen and (device-width: 390px) and (device-height: 844px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/iPhone_13_mini__iPhone_12_mini__iPhone_11_Pro__iPhone_XS__iPhone_X_landscape.png', | ||
media: | ||
'screen and (device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/iPhone_11_Pro_Max__iPhone_XS_Max_landscape.png', | ||
media: | ||
'screen and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/iPhone_11__iPhone_XR_landscape.png', | ||
media: | ||
'screen and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/iPhone_8_Plus__iPhone_7_Plus__iPhone_6s_Plus__iPhone_6_Plus_landscape.png', | ||
media: | ||
'screen and (device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/iPhone_8__iPhone_7__iPhone_6s__iPhone_6__4.7__iPhone_SE_landscape.png', | ||
media: | ||
'screen and (device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/4__iPhone_SE__iPod_touch_5th_generation_and_later_landscape.png', | ||
media: | ||
'screen and (device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/12.9__iPad_Pro_landscape.png', | ||
media: | ||
'screen and (device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/11__iPad_Pro__10.5__iPad_Pro_landscape.png', | ||
media: | ||
'screen and (device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/10.9__iPad_Air_landscape.png', | ||
media: | ||
'screen and (device-width: 820px) and (device-height: 1180px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/10.5__iPad_Air_landscape.png', | ||
media: | ||
'screen and (device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/10.2__iPad_landscape.png', | ||
media: | ||
'screen and (device-width: 810px) and (device-height: 1080px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/9.7__iPad_Pro__7.9__iPad_mini__9.7__iPad_Air__9.7__iPad_landscape.png', | ||
media: | ||
'screen and (device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/8.3__iPad_Mini_landscape.png', | ||
media: | ||
'screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/iPhone_14_Pro_Max_portrait.png', | ||
media: | ||
'screen and (device-width: 430px) and (device-height: 932px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/iPhone_14_Pro_portrait.png', | ||
media: | ||
'screen and (device-width: 393px) and (device-height: 852px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/iPhone_14_Plus__iPhone_13_Pro_Max__iPhone_12_Pro_Max_portrait.png', | ||
media: | ||
'screen and (device-width: 428px) and (device-height: 926px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/iPhone_14__iPhone_13_Pro__iPhone_13__iPhone_12_Pro__iPhone_12_portrait.png', | ||
media: | ||
'screen and (device-width: 390px) and (device-height: 844px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/iPhone_13_mini__iPhone_12_mini__iPhone_11_Pro__iPhone_XS__iPhone_X_portrait.png', | ||
media: | ||
'screen and (device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/iPhone_11_Pro_Max__iPhone_XS_Max_portrait.png', | ||
media: | ||
'screen and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/iPhone_11__iPhone_XR_portrait.png', | ||
media: | ||
'screen and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/iPhone_8_Plus__iPhone_7_Plus__iPhone_6s_Plus__iPhone_6_Plus_portrait.png', | ||
media: | ||
'screen and (device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/iPhone_8__iPhone_7__iPhone_6s__iPhone_6__4.7__iPhone_SE_portrait.png', | ||
media: | ||
'screen and (device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/4__iPhone_SE__iPod_touch_5th_generation_and_later_portrait.png', | ||
media: | ||
'screen and (device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/12.9__iPad_Pro_portrait.png', | ||
media: | ||
'screen and (device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/11__iPad_Pro__10.5__iPad_Pro_portrait.png', | ||
media: | ||
'screen and (device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/10.9__iPad_Air_portrait.png', | ||
media: | ||
'screen and (device-width: 820px) and (device-height: 1180px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/10.5__iPad_Air_portrait.png', | ||
media: | ||
'screen and (device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/10.2__iPad_portrait.png', | ||
media: | ||
'screen and (device-width: 810px) and (device-height: 1080px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/9.7__iPad_Pro__7.9__iPad_mini__9.7__iPad_Air__9.7__iPad_portrait.png', | ||
media: | ||
'screen and (device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
{ | ||
url: '/pwa/splash-screens/8.3__iPad_Mini_portrait.png', | ||
media: | ||
'screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)', | ||
rel: 'apple-touch-startup-image', | ||
}, | ||
], | ||
} | ||
|
||
const T4App = ({ children }: { children: React.ReactNode }) => { | ||
return ( | ||
<html lang='en'> | ||
<body> | ||
<script | ||
key='tamagui-animations-mount' | ||
dangerouslySetInnerHTML={{ | ||
// avoid flash of animated things on enter | ||
__html: `document.documentElement.classList.add('t_unmounted')`, | ||
}} | ||
/> | ||
<StylesProvider> | ||
<Provider initialSession={null}>{children}</Provider> | ||
</StylesProvider> | ||
</body> | ||
</html> | ||
) | ||
} | ||
|
||
export default T4App |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
import { OAuthSignInScreen, OAuthSignInScreenProps } from 'app/features/oauth/screen' | ||
import { Metadata } from 'next' | ||
import { headers } from 'next/headers' | ||
|
||
export const metadata: Metadata = { | ||
title: 'OAuth Sign In', | ||
} | ||
export const runtime = 'edge' | ||
|
||
// Apple will POST form data to the redirect URI when scopes have been requested | ||
// @link https://developer.apple.com/documentation/sign_in_with_apple/request_an_authorization_to_the_sign_in_with_apple_server | ||
function getServerSideProps(): OAuthSignInScreenProps { | ||
// Fetch data from external API | ||
let appleUser = null | ||
try { | ||
const userJSON = headers().get('x-apple-user') as string | undefined | ||
if (typeof userJSON === 'string') { | ||
appleUser = JSON.parse(userJSON) | ||
} | ||
} catch (e: unknown) { | ||
console.error(e) | ||
} | ||
return { appleUser } | ||
} | ||
|
||
export default async function Page() { | ||
return <OAuthSignInScreen {...getServerSideProps()} /> | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
import { HomeScreen } from 'app/features/home/screen' | ||
import { Metadata } from 'next' | ||
|
||
export const metadata: Metadata = { | ||
title: 'Home', | ||
} | ||
|
||
export default function Page() { | ||
return <HomeScreen /> | ||
} |
Oops, something went wrong.
a3b44c7
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
✔ EAS production build completed