Skip to content

Commit f579db0

Browse files
authored
Expo 51 (#972)
* Updates packages in all * Update example app packages * Update version to 51.0.0 * Update yarn.lock * Update more packages + use metro for example app + other fixes + updated eslint * js -> jsx * Fix tests * Update workflow node version * Fix web date picker * Proper ts lint and address linter errors * Fix build issue * Fix remaining linter errors * Update ci.yml with 51
1 parent 8d34ab2 commit f579db0

File tree

76 files changed

+5803
-8515
lines changed

Some content is hidden

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

76 files changed

+5803
-8515
lines changed

.github/workflows/ci.yml

+16-16
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ on:
44
push:
55
branches:
66
- master
7-
- 50
7+
- 51
88
pull_request:
99
types: [assigned, opened, synchronize, reopened]
1010

@@ -18,7 +18,7 @@ jobs:
1818

1919
- uses: actions/setup-node@v3
2020
with:
21-
node-version: 18
21+
node-version: 20
2222
cache: "yarn"
2323
registry-url: https://registry.npmjs.org/
2424

@@ -64,8 +64,8 @@ jobs:
6464
--yes \
6565
--no-verify-access
6666
67-
- name: Release packages (50)
68-
if: github.event_name != 'pull_request' && github.ref == 'refs/heads/50'
67+
- name: Release packages (51)
68+
if: github.event_name != 'pull_request' && github.ref == 'refs/heads/51'
6969
env:
7070
NODE_AUTH_TOKEN: ${{ secrets.JIGSAW_AUTH_TOKEN }}
7171
run: |
@@ -81,12 +81,12 @@ jobs:
8181
# This hits Snack twice because it commonly times out the first time
8282
export newversion=$(npm view @draftbit/ui dist-tags.next);
8383
sleep 10
84-
curl "https://snackager.expo.io/bundle/@draftbit/ui@"$newversion"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=50.0.0";
85-
curl "https://snackager.expo.io/bundle/@draftbit/ui@"$newversion"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=50.0.0";
86-
curl "https://snackager.expo.io/bundle/@draftbit/core@"$newversion"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=50.0.0";
87-
curl "https://snackager.expo.io/bundle/@draftbit/core@"$newversion"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=50.0.0";
88-
curl "https://snackager.expo.io/bundle/@draftbit/maps@"$newversion"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=50.0.0";
89-
curl "https://snackager.expo.io/bundle/@draftbit/maps@"$newversion"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=50.0.0";
84+
curl "https://snackager.expo.io/bundle/@draftbit/ui@"$newversion"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=51.0.0";
85+
curl "https://snackager.expo.io/bundle/@draftbit/ui@"$newversion"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=51.0.0";
86+
curl "https://snackager.expo.io/bundle/@draftbit/core@"$newversion"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=51.0.0";
87+
curl "https://snackager.expo.io/bundle/@draftbit/core@"$newversion"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=51.0.0";
88+
curl "https://snackager.expo.io/bundle/@draftbit/maps@"$newversion"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=51.0.0";
89+
curl "https://snackager.expo.io/bundle/@draftbit/maps@"$newversion"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=51.0.0";
9090
working-directory: packages/ui
9191

9292
- name: Release to Snack
@@ -96,12 +96,12 @@ jobs:
9696
# This hits Snack twice because it commonly times out the first time
9797
export version=$(jq -r .version package.json);
9898
sleep 10
99-
curl "https://snackager.expo.io/bundle/@draftbit/ui@"$version"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=50.0.0";
100-
curl "https://snackager.expo.io/bundle/@draftbit/ui@"$version"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=50.0.0";
101-
curl "https://snackager.expo.io/bundle/@draftbit/core@"$version"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=50.0.0";
102-
curl "https://snackager.expo.io/bundle/@draftbit/core@"$version"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=50.0.0";
103-
curl "https://snackager.expo.io/bundle/@draftbit/maps@"$version"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=50.0.0";
104-
curl "https://snackager.expo.io/bundle/@draftbit/maps@"$version"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=50.0.0";
99+
curl "https://snackager.expo.io/bundle/@draftbit/ui@"$version"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=51.0.0";
100+
curl "https://snackager.expo.io/bundle/@draftbit/ui@"$version"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=51.0.0";
101+
curl "https://snackager.expo.io/bundle/@draftbit/core@"$version"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=51.0.0";
102+
curl "https://snackager.expo.io/bundle/@draftbit/core@"$version"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=51.0.0";
103+
curl "https://snackager.expo.io/bundle/@draftbit/maps@"$version"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=51.0.0";
104+
curl "https://snackager.expo.io/bundle/@draftbit/maps@"$version"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=51.0.0";
105105
working-directory: packages/ui
106106

107107
- name: Add comment to pull request

.husky/pre-commit

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
#!/bin/sh
2-
. "$(dirname "$0")/_/husky.sh"
32

43
npx lint-staged

.prettierrc.js

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
module.exports = {
2+
quoteProps: "consistent",
3+
semi: true,
4+
singleQuote: false,
5+
tabWidth: 2,
6+
trailingComma: "es5",
7+
useTabs: false,
8+
bracketSpacing: true,
9+
endOfLine: "auto",
10+
};

eslint.config.js

+70
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
const { fixupPluginRules } = require("@eslint/compat");
2+
const esLintReactNative = require("eslint-plugin-react-native");
3+
const eslintPluginPrettierRecommended = require("eslint-plugin-prettier/recommended");
4+
const hooksPlugin = require("eslint-plugin-react-hooks");
5+
const tsEslint = require("typescript-eslint");
6+
7+
module.exports = [
8+
...tsEslint.configs.recommended,
9+
eslintPluginPrettierRecommended,
10+
11+
// Workaround for `eslint-plugin-react-native` not supporting eslint flat configs
12+
// https://github.com/facebook/react-native/issues/42996#issuecomment-2275994981
13+
{
14+
name: "eslint-plugin-react-native",
15+
plugins: {
16+
"react-native": fixupPluginRules({
17+
rules: esLintReactNative.rules,
18+
}),
19+
},
20+
rules: {
21+
...esLintReactNative.configs.all.rules,
22+
"react-native/sort-styles": "off",
23+
"react-native/no-inline-styles": "warn",
24+
},
25+
},
26+
27+
// Workaround for `eslint-plugin-react-hooks` not supporting eslint flat configs
28+
// https://github.com/facebook/react/issues/28313#issuecomment-2379308650
29+
{
30+
plugins: {
31+
"react-hooks": fixupPluginRules(hooksPlugin),
32+
},
33+
rules: hooksPlugin.configs.recommended.rules,
34+
},
35+
{
36+
ignores: [
37+
"scripts",
38+
"example/web-build",
39+
"node_modules/",
40+
"**/lib/**",
41+
"**/__generated__/**",
42+
"jest-setup.js",
43+
],
44+
},
45+
{
46+
rules: {
47+
"@typescript-eslint/no-explicit-any": "off",
48+
"@typescript-eslint/ban-ts-comment": "off",
49+
"@typescript-eslint/no-require-imports": "off",
50+
"@typescript-eslint/no-unused-expressions": "off",
51+
"@typescript-eslint/no-unnecessary-type-constraint": "off",
52+
"react-native/no-inline-styles": "off",
53+
"react-native/no-color-literals": "off",
54+
55+
// ignore unused vars that start with underscore
56+
"@typescript-eslint/no-unused-vars": [
57+
"error",
58+
{
59+
args: "all",
60+
argsIgnorePattern: "^_",
61+
caughtErrors: "all",
62+
caughtErrorsIgnorePattern: "^_",
63+
destructuredArrayIgnorePattern: "^_",
64+
varsIgnorePattern: "^_",
65+
ignoreRestSiblings: true,
66+
},
67+
],
68+
},
69+
},
70+
];

example/app.json

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
{
2-
"name": "@draftbit/ui-example",
3-
"displayName": "Ui Example",
42
"expo": {
53
"name": "@draftbit/ui-example",
64
"slug": "draftbit-ui-example",
@@ -17,6 +15,7 @@
1715
"ios": {
1816
"supportsTablet": true
1917
},
20-
"assetBundlePatterns": ["**/*"]
18+
"assetBundlePatterns": ["**/*"],
19+
"plugins": ["expo-asset", "expo-font"]
2120
}
2221
}

example/babel.config.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ module.exports = function (api) {
33
return {
44
presets: ["babel-preset-expo"],
55
plugins: [
6-
"@babel/plugin-proposal-export-namespace-from",
6+
"@babel/plugin-transform-export-namespace-from",
77
"react-native-reanimated/plugin",
88
],
99
};

example/package.json

+19-19
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@draftbit/example",
33
"description": "Example app for @draftbit/ui",
4-
"version": "50.6.3",
4+
"version": "51.0.0",
55
"private": true,
66
"scripts": {
77
"android": "expo start --android",
@@ -14,32 +14,32 @@
1414
"clean:modules": "rimraf node_modules"
1515
},
1616
"dependencies": {
17-
"@draftbit/maps": "50.6.3",
18-
"@draftbit/ui": "50.6.3",
17+
"@draftbit/maps": "51.0.0",
18+
"@draftbit/ui": "51.0.0",
1919
"@expo/dev-server": "0.1.123",
20-
"@expo/webpack-config": "~19.0.1",
20+
"@expo/metro-runtime": "~3.2.3",
2121
"@react-navigation/drawer": "^6.6.3",
2222
"@react-navigation/native": "^6.1.7",
23-
"@shopify/flash-list": "1.6.3",
24-
"expo": "^50.0.0",
25-
"expo-asset": "~9.0.2",
26-
"expo-constants": "~15.4.6",
27-
"expo-font": "~11.10.3",
28-
"expo-splash-screen": "~0.26.4",
29-
"expo-status-bar": "~1.11.1",
23+
"@shopify/flash-list": "1.6.4",
24+
"expo": "^51.0.0",
25+
"expo-asset": "~10.0.10",
26+
"expo-constants": "~16.0.2",
27+
"expo-font": "~12.0.10",
28+
"expo-splash-screen": "~0.27.7",
29+
"expo-status-bar": "~1.12.1",
3030
"react": "18.2.0",
3131
"react-dom": "18.2.0",
32-
"react-native": "0.73.6",
33-
"react-native-gesture-handler": "~2.14.0",
34-
"react-native-get-random-values": "~1.8.0",
35-
"react-native-reanimated": "~3.6.2",
36-
"react-native-safe-area-context": "4.8.2",
37-
"react-native-screens": "~3.29.0",
38-
"react-native-web": "~0.19.6",
32+
"react-native": "0.74.5",
33+
"react-native-gesture-handler": "~2.16.1",
34+
"react-native-get-random-values": "~1.11.0",
35+
"react-native-reanimated": "~3.10.1",
36+
"react-native-safe-area-context": "4.10.5",
37+
"react-native-screens": "3.31.1",
38+
"react-native-web": "~0.19.10",
3939
"uuid": "^9.0.1"
4040
},
4141
"devDependencies": {
42-
"@babel/core": "^7.20.0",
42+
"@babel/core": "^7.24.0",
4343
"@types/react": "~18.2.45",
4444
"@types/react-native": "~0.70.6",
4545
"babel-loader": "8.1.0",
File renamed without changes.
File renamed without changes.

example/src/App.tsx

+2-10
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ const ROUTES = {
122122
KeyboardAvoidingView: KeyboardAvoidingViewExample,
123123
};
124124

125-
let customFonts = {
125+
const customFonts = {
126126
"FiraCode": require("./assets/fonts/FiraCode-Bold.otf"),
127127
"Testing": require("./assets/fonts/Sriracha-Regular.ttf"),
128128
"Inter-SemiBoldItalic":
@@ -374,7 +374,7 @@ function Example({ title, children }: ExampleProps) {
374374
/>
375375
</TouchableOpacity>
376376

377-
<Text style={[exampleStyles.headerTextStyle]}>{title}</Text>
377+
<Text style={exampleStyles.headerTextStyle}>{title}</Text>
378378
<TouchableOpacity
379379
style={exampleStyles.menuButtonStyle}
380380
onPress={() => {
@@ -428,11 +428,6 @@ function Examples() {
428428
}
429429

430430
const exampleStyles = StyleSheet.create({
431-
mainParent: {
432-
width: "100%",
433-
height: "100%",
434-
backgroundColor: "rgba(251, 252, 253, 1)",
435-
},
436431
headerStyle: {
437432
flexDirection: "row",
438433
alignItems: "center",
@@ -469,7 +464,4 @@ const exampleStyles = StyleSheet.create({
469464
marginBottom: 8,
470465
paddingVertical: 4,
471466
},
472-
scrollViewStyle: {
473-
paddingBottom: 20,
474-
},
475467
});
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

example/src/TimerExample.tsx

+1-6
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ const TimerExample: React.FC = () => {
3838
}}
3939
onTimerEnd={() => {
4040
console.log("onTimerEnd");
41-
// eslint-disable-next-line no-alert
41+
4242
alert("onTimerEnd");
4343
}}
4444
style={{
@@ -66,11 +66,6 @@ const TimerExample: React.FC = () => {
6666
};
6767

6868
const styles = StyleSheet.create({
69-
container: {
70-
flex: 1,
71-
justifyContent: "center",
72-
padding: 20,
73-
},
7469
buttonsContainer: {
7570
marginTop: 20,
7671
gap: 10,
File renamed without changes.

lerna.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
{
2-
"version": "50.6.3",
2+
"version": "51.0.0",
33
"npmClient": "yarn",
4-
"useWorkspaces": true,
54
"packages": ["packages/*", "example"],
65
"command": {
76
"publish": {

0 commit comments

Comments
 (0)