Skip to content

Commit a17b859

Browse files
authored
Fix expo; fix timestamp defaults (#3)
* Get the basics of the Expo app working * Fix timestamp defaults
1 parent 30b86f3 commit a17b859

File tree

206 files changed

+3468
-5229
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

206 files changed

+3468
-5229
lines changed

.nvmrc

-1
This file was deleted.

.tool-versions

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ruby 3.4.1

.vscode/settings.json

+3-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
"editor.defaultFormatter": "esbenp.prettier-vscode"
88
},
99
"editor.formatOnSave": true,
10+
"eslint.nodePath": "node_modules/eslint/bin/eslint.js",
1011
"eslint.rules.customizations": [{ "rule": "*", "severity": "warn" }],
1112
"eslint.runtime": "node",
1213
"eslint.workingDirectories": [
@@ -28,5 +29,6 @@
2829
"typescript.tsdk": "node_modules/typescript/lib",
2930
"[typescript]": {
3031
"editor.defaultFormatter": "esbenp.prettier-vscode"
31-
}
32+
},
33+
"java.compile.nullAnalysis.mode": "automatic"
3234
}

apps/auth-proxy/sst-env.d.ts

+4-91
Original file line numberDiff line numberDiff line change
@@ -2,95 +2,8 @@
22
/* tslint:disable */
33
/* eslint-disable */
44
/* deno-fmt-ignore-file */
5+
6+
/// <reference path="../../sst-env.d.ts" />
7+
58
import "sst"
6-
export {}
7-
declare module "sst" {
8-
export interface Resource {
9-
"AuthChallengeEncryptionKey": {
10-
"type": "sst.sst.Secret"
11-
"value": string
12-
}
13-
"AuthHomefrontClientId": {
14-
"type": "sst.sst.Secret"
15-
"value": string
16-
}
17-
"AuthHomefrontClientSecret": {
18-
"type": "sst.sst.Secret"
19-
"value": string
20-
}
21-
"AuthMiniSessionEncryptionKey": {
22-
"type": "sst.sst.Secret"
23-
"value": string
24-
}
25-
"AuthSalt": {
26-
"type": "sst.sst.Secret"
27-
"value": string
28-
}
29-
"AuthSecret": {
30-
"type": "sst.sst.Secret"
31-
"value": string
32-
}
33-
"AuthSessionCreatorSecret": {
34-
"type": "sst.sst.Secret"
35-
"value": string
36-
}
37-
"DatabaseUrl": {
38-
"type": "sst.sst.Secret"
39-
"value": string
40-
}
41-
"DbEncryptionKey": {
42-
"type": "sst.sst.Secret"
43-
"value": string
44-
}
45-
"OauthEncryptionKey": {
46-
"type": "sst.sst.Secret"
47-
"value": string
48-
}
49-
"OauthSecret": {
50-
"type": "sst.sst.Secret"
51-
"value": string
52-
}
53-
"OtpEncryptionKey": {
54-
"type": "sst.sst.Secret"
55-
"value": string
56-
}
57-
"PineconeApiKey": {
58-
"type": "sst.sst.Secret"
59-
"value": string
60-
}
61-
"Redis": {
62-
"host": string
63-
"password": string
64-
"port": number
65-
"type": "sst.aws.Redis"
66-
"username": string
67-
}
68-
"StripeHashKey": {
69-
"type": "sst.sst.Secret"
70-
"value": string
71-
}
72-
"StripeSecretKey": {
73-
"type": "sst.sst.Secret"
74-
"value": string
75-
}
76-
"StripeWebhookSecret": {
77-
"type": "sst.sst.Secret"
78-
"value": string
79-
}
80-
"Vpc": {
81-
"type": "sst.aws.Vpc"
82-
}
83-
"Web": {
84-
"type": "sst.aws.Nextjs"
85-
"url": string
86-
}
87-
"homefront-next-prod": {
88-
"name": string
89-
"type": "sst.aws.Bucket"
90-
}
91-
"join-homefront": {
92-
"name": string
93-
"type": "sst.aws.Bucket"
94-
}
95-
}
96-
}
9+
export {}

apps/expo/.expo-shared/assets.json

-4
This file was deleted.

apps/expo/app.config.ts

+14-10
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,36 @@
11
import type { ConfigContext, ExpoConfig } from "expo/config";
22

3+
const backgroundColor = "#0C72BD";
4+
35
export default ({ config }: ConfigContext): ExpoConfig => ({
46
...config,
5-
name: "expo",
6-
slug: "expo",
7-
scheme: "expo",
7+
name: "Homefront",
8+
slug: "homefront",
9+
scheme: "homefront",
810
version: "0.1.0",
11+
platforms: ["ios", "android"],
912
orientation: "portrait",
1013
icon: "./assets/icon.png",
1114
userInterfaceStyle: "automatic",
1215
splash: {
13-
image: "./assets/icon.png",
16+
image: "./assets/splash.png",
1417
resizeMode: "contain",
15-
backgroundColor: "#1F104A",
18+
backgroundColor,
1619
},
1720
updates: {
1821
fallbackToCacheTimeout: 0,
1922
},
2023
assetBundlePatterns: ["**/*"],
2124
ios: {
22-
bundleIdentifier: "your.bundle.identifier",
25+
bundleIdentifier: "org.joinhomefront.ios",
2326
supportsTablet: true,
27+
icon: "./assets/icon.png",
2428
},
2529
android: {
26-
package: "your.bundle.identifier",
30+
package: "org.joinhomefront.android",
2731
adaptiveIcon: {
28-
foregroundImage: "./assets/icon.png",
29-
backgroundColor: "#1F104A",
32+
foregroundImage: "./assets/adaptive-icon.png",
33+
backgroundColor,
3034
},
3135
},
3236
// extra: {
@@ -38,5 +42,5 @@ export default ({ config }: ConfigContext): ExpoConfig => ({
3842
tsconfigPaths: true,
3943
typedRoutes: true,
4044
},
41-
plugins: ["expo-router"],
45+
plugins: ["expo-router", "expo-secure-store"],
4246
});

apps/expo/assets/adaptive-icon.png

52.8 KB
Loading

apps/expo/assets/icon.png

61.2 KB
Loading

apps/expo/assets/splash.png

150 KB
Loading

apps/expo/metro.config.js

+8-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const path = require("path");
88
const config = withTurborepoManagedCache(
99
withMonorepoPaths(
1010
withNativeWind(getDefaultConfig(__dirname), {
11-
input: "./src/styles.css",
11+
input: "./src/globals.css",
1212
configPath: "./tailwind.config.ts",
1313
}),
1414
),
@@ -18,6 +18,12 @@ const config = withTurborepoManagedCache(
1818
// https://github.com/expo/expo/issues/26926
1919
config.resolver.unstable_enablePackageExports = true;
2020

21+
config.resolver.unstable_conditionNames = [
22+
"browser",
23+
"require",
24+
"react-native",
25+
];
26+
2127
module.exports = config;
2228

2329
/**
@@ -54,7 +60,7 @@ function withMonorepoPaths(config) {
5460
*/
5561
function withTurborepoManagedCache(config) {
5662
config.cacheStores = [
57-
new FileStore({ root: path.join(__dirname, ".cache/metro") }),
63+
new FileStore({ root: path.join(__dirname, "node_modules/.cache/metro") }),
5864
];
5965
return config;
6066
}

apps/expo/package.json

+77-18
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "@homefront/expo",
33
"version": "0.1.0",
44
"private": true,
5-
"main": "index.ts",
5+
"main": "expo-router/entry",
66
"scripts": {
77
"clean": "git clean -xdf .cache .expo .turbo android ios node_modules",
88
"dev": "expo start",
@@ -16,38 +16,97 @@
1616
},
1717
"dependencies": {
1818
"@bacons/text-decoder": "^0.0.0",
19-
"@expo/metro-config": "^0.18.11",
19+
"@expo-google-fonts/fira-code": "^0.2.3",
20+
"@expo-google-fonts/inter": "^0.2.3",
21+
"@expo-google-fonts/oswald": "^0.2.3",
22+
"@expo-google-fonts/pt-serif": "^0.2.3",
23+
"@expo/metro-config": "^0.19.9",
2024
"@homefront/api": "workspace:*",
2125
"@homefront/app": "workspace:*",
22-
"@shopify/flash-list": "1.7.1",
26+
"@homefront/auth": "workspace:*",
27+
"@homefront/dayjs": "workspace:*",
28+
"@homefront/db": "workspace:*",
29+
"@homefront/ui": "workspace:*",
30+
"@homefront/validators": "workspace:*",
31+
"@hookform/resolvers": "catalog:",
32+
"@react-native-async-storage/async-storage": "catalog:",
33+
"@react-native-masked-view/masked-view": "^0.3.2",
34+
"@react-navigation/native": "catalog:",
35+
"@rn-primitives/accordion": "catalog:",
36+
"@rn-primitives/alert-dialog": "catalog:",
37+
"@rn-primitives/aspect-ratio": "catalog:",
38+
"@rn-primitives/avatar": "catalog:",
39+
"@rn-primitives/checkbox": "catalog:",
40+
"@rn-primitives/collapsible": "catalog:",
41+
"@rn-primitives/context-menu": "catalog:",
42+
"@rn-primitives/dialog": "catalog:",
43+
"@rn-primitives/dropdown-menu": "catalog:",
44+
"@rn-primitives/hover-card": "catalog:",
45+
"@rn-primitives/label": "catalog:",
46+
"@rn-primitives/menubar": "catalog:",
47+
"@rn-primitives/navigation-menu": "catalog:",
48+
"@rn-primitives/popover": "catalog:",
49+
"@rn-primitives/portal": "catalog:",
50+
"@rn-primitives/progress": "catalog:",
51+
"@rn-primitives/radio-group": "catalog:",
52+
"@rn-primitives/select": "catalog:",
53+
"@rn-primitives/separator": "catalog:",
54+
"@rn-primitives/slot": "catalog:",
55+
"@rn-primitives/switch": "catalog:",
56+
"@rn-primitives/table": "catalog:",
57+
"@rn-primitives/tabs": "catalog:",
58+
"@rn-primitives/toggle": "catalog:",
59+
"@rn-primitives/toggle-group": "catalog:",
60+
"@rn-primitives/tooltip": "catalog:",
61+
"@rn-primitives/types": "catalog:",
62+
"@shopify/flash-list": "catalog:",
2363
"@tanstack/react-query": "catalog:",
2464
"@trpc/client": "catalog:",
2565
"@trpc/react-query": "catalog:",
2666
"@trpc/server": "catalog:",
27-
"expo": "~52.0.6",
28-
"expo-constants": "~16.0.2",
29-
"expo-dev-client": "~4.0.28",
30-
"expo-linking": "~6.3.1",
31-
"expo-router": "~3.5.23",
67+
"class-variance-authority": "catalog:",
68+
"expo": "~52.0.28",
69+
"expo-blur": "catalog:",
70+
"expo-clipboard": "catalog:",
71+
"expo-constants": "catalog:",
72+
"expo-dev-client": "catalog:",
73+
"expo-device": "catalog:",
74+
"expo-font": "catalog:",
75+
"expo-image": "catalog:",
76+
"expo-linking": "catalog:",
77+
"expo-location": "catalog:",
78+
"expo-navigation-bar": "catalog:",
79+
"expo-router": "catalog:",
3280
"expo-secure-store": "catalog:",
33-
"expo-splash-screen": "~0.27.6",
34-
"expo-status-bar": "~1.12.1",
35-
"expo-web-browser": "^13.0.3",
81+
"expo-sharing": "catalog:",
82+
"expo-splash-screen": "catalog:",
83+
"expo-status-bar": "catalog:",
84+
"expo-system-ui": "catalog:",
85+
"expo-web-browser": "^14.0.2",
86+
"lucide-react-native": "catalog:",
3687
"nativewind": "catalog:",
3788
"react": "catalog:react-for-expo",
3889
"react-dom": "catalog:react-for-expo",
3990
"react-native": "catalog:react-for-expo",
40-
"react-native-css-interop": "~0.0.36",
91+
"react-native-bouncy-checkbox": "catalog:",
92+
"react-native-css-interop": "catalog:",
4193
"react-native-gesture-handler": "~2.20.0",
94+
"react-native-get-random-values": "catalog:",
95+
"react-native-markdown-display": "catalog:",
96+
"react-native-otp-entry": "catalog:",
97+
"react-native-qrcode-svg": "catalog:",
4298
"react-native-reanimated": "catalog:",
43-
"react-native-safe-area-context": "~4.11.1",
44-
"react-native-screens": "~3.34.0",
45-
"superjson": "2.2.1"
99+
"react-native-safe-area-context": "catalog:",
100+
"react-native-screens": "catalog:",
101+
"react-native-svg": "catalog:",
102+
"react-native-url-polyfill": "catalog:",
103+
"superjson": "catalog:",
104+
"tailwind-merge": "catalog:"
46105
},
47106
"devDependencies": {
48-
"@babel/core": "^7.25.8",
49-
"@babel/preset-env": "^7.25.8",
50-
"@babel/runtime": "^7.25.7",
107+
"@babel/core": "^7.26.7",
108+
"@babel/preset-env": "^7.26.7",
109+
"@babel/runtime": "^7.26.7",
51110
"@homefront/eslint-config": "workspace:*",
52111
"@homefront/prettier-config": "workspace:*",
53112
"@homefront/tailwind-config": "workspace:*",

0 commit comments

Comments
 (0)