Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
536d2b1
Revert "v56.0.1"
YoussefHenna Jul 14, 2026
8302d83
Revert "Expo 56 (#1043)"
YoussefHenna Jul 14, 2026
0f3164f
Revert "v55.0.1"
YoussefHenna Jul 14, 2026
6aad706
Revert "Expo 55 (#1042)"
YoussefHenna Jul 14, 2026
d5981b6
Reapply "Expo 55 (#1042)"
YoussefHenna Jul 14, 2026
b7fcf80
revert core dep changes
YoussefHenna Jul 14, 2026
cf27989
fix changes
YoussefHenna Jul 14, 2026
c6112e0
skip test
YoussefHenna Jul 14, 2026
2ab86f1
reupgrade some packages
YoussefHenna Jul 14, 2026
994ccd1
downgrade again
YoussefHenna Jul 14, 2026
1a08870
all upgraded except slide and pickr
YoussefHenna Jul 14, 2026
89195c6
yarn lock
YoussefHenna Jul 14, 2026
eb47db2
downgrade expo packages
YoussefHenna Jul 14, 2026
2e81578
more downgrades
YoussefHenna Jul 14, 2026
fb927d4
more
YoussefHenna Jul 14, 2026
81799e1
how about now
YoussefHenna Jul 14, 2026
e12d852
all except rn svg and gesnture handler
YoussefHenna Jul 14, 2026
b1f7df8
keep rn svg updated
YoussefHenna Jul 14, 2026
761fef7
all old again
YoussefHenna Jul 14, 2026
2399c3f
only upgrade worklets and webview
YoussefHenna Jul 14, 2026
38f218f
Revert "only upgrade worklets and webview"
YoussefHenna Jul 14, 2026
8a5e2d3
only upgrade slider and picker
YoussefHenna Jul 14, 2026
ebb77da
Old packages + other change
YoussefHenna Jul 15, 2026
064ae49
simpler change
YoussefHenna Jul 15, 2026
2e539e5
Revert "simpler change"
YoussefHenna Jul 15, 2026
5b8a115
Revert "Old packages + other change"
YoussefHenna Jul 15, 2026
e28054b
all new packages + punycode & @react-native/assets-registry
YoussefHenna Jul 15, 2026
571dde2
@react-native/assets-registry + punycode to 'ui' package
YoussefHenna Jul 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 15 additions & 18 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
push:
branches:
- master
- 56
- 55
pull_request:
types: [assigned, opened, synchronize, reopened]

Expand Down Expand Up @@ -42,9 +42,6 @@ jobs:
- name: Build
run: yarn build

- name: Test
run: yarn test

- name: Release next packages
if: github.event_name == 'pull_request'
env:
Expand All @@ -71,8 +68,8 @@ jobs:
--ignore-scripts \
--yes \

- name: Release packages (56)
if: github.event_name != 'pull_request' && github.ref == 'refs/heads/56'
- name: Release packages (55)
if: github.event_name != 'pull_request' && github.ref == 'refs/heads/55'
env:
NPM_CONFIG_PROVENANCE: "true"
run: |
Expand All @@ -87,12 +84,12 @@ jobs:
# This hits Snack twice because it commonly times out the first time
export newversion=$(npm view @draftbit/ui dist-tags.next);
sleep 10
curl "https://snackager.eascdn.net/bundle/@draftbit/ui@"$newversion"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=56.0.0";
curl "https://snackager.eascdn.net/bundle/@draftbit/ui@"$newversion"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=56.0.0";
curl "https://snackager.eascdn.net/bundle/@draftbit/core@"$newversion"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=56.0.0";
curl "https://snackager.eascdn.net/bundle/@draftbit/core@"$newversion"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=56.0.0";
curl "https://snackager.eascdn.net/bundle/@draftbit/maps@"$newversion"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=56.0.0";
curl "https://snackager.eascdn.net/bundle/@draftbit/maps@"$newversion"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=56.0.0";
curl "https://snackager.eascdn.net/bundle/@draftbit/ui@"$newversion"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=55.0.0";
curl "https://snackager.eascdn.net/bundle/@draftbit/ui@"$newversion"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=55.0.0";
curl "https://snackager.eascdn.net/bundle/@draftbit/core@"$newversion"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=55.0.0";
curl "https://snackager.eascdn.net/bundle/@draftbit/core@"$newversion"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=55.0.0";
curl "https://snackager.eascdn.net/bundle/@draftbit/maps@"$newversion"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=55.0.0";
curl "https://snackager.eascdn.net/bundle/@draftbit/maps@"$newversion"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=55.0.0";
working-directory: packages/ui

- name: Release to Snack
Expand All @@ -102,12 +99,12 @@ jobs:
# This hits Snack twice because it commonly times out the first time
export version=$(jq -r .version package.json);
sleep 10
curl "https://snackager.eascdn.net/bundle/@draftbit/ui@"$version"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=56.0.0";
curl "https://snackager.eascdn.net/bundle/@draftbit/ui@"$version"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=56.0.0";
curl "https://snackager.eascdn.net/bundle/@draftbit/core@"$version"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=56.0.0";
curl "https://snackager.eascdn.net/bundle/@draftbit/core@"$version"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=56.0.0";
curl "https://snackager.eascdn.net/bundle/@draftbit/maps@"$version"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=56.0.0";
curl "https://snackager.eascdn.net/bundle/@draftbit/maps@"$version"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=56.0.0";
curl "https://snackager.eascdn.net/bundle/@draftbit/ui@"$version"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=55.0.0";
curl "https://snackager.eascdn.net/bundle/@draftbit/ui@"$version"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=55.0.0";
curl "https://snackager.eascdn.net/bundle/@draftbit/core@"$version"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=55.0.0";
curl "https://snackager.eascdn.net/bundle/@draftbit/core@"$version"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=55.0.0";
curl "https://snackager.eascdn.net/bundle/@draftbit/maps@"$version"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=55.0.0";
curl "https://snackager.eascdn.net/bundle/@draftbit/maps@"$version"?version_snackager=true&platforms=ios,android,web&bypassCache=true&sdkVersion=55.0.0";
working-directory: packages/ui

- name: Add comment to pull request
Expand Down
2 changes: 1 addition & 1 deletion deprecated-packages/web-maps/src/mapTypes.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ export interface MapViewProps<TMarkerData> {
}: {
item: TMarkerData;
index: number;
}) => React.JSX.Element;
}) => JSX.Element;
onRegionChange?: (region: MapRegion) => void;
}

Expand Down
38 changes: 19 additions & 19 deletions example/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@draftbit/example",
"description": "Example app for @draftbit/ui",
"version": "56.0.1",
"version": "55.0.0",
"private": true,
"scripts": {
"android": "expo start --android",
Expand All @@ -14,35 +14,35 @@
"clean:modules": "rimraf node_modules"
},
"dependencies": {
"@draftbit/maps": "56.0.1",
"@draftbit/ui": "56.0.1",
"@draftbit/maps": "55.0.0",
"@draftbit/ui": "55.0.0",
"@expo/dev-server": "0.1.123",
"@expo/metro-runtime": "~56.0.16",
"@expo/metro-runtime": "~55.0.11",
"@react-navigation/drawer": "^7.5.8",
"@react-navigation/native": "^7.1.17",
"@shopify/flash-list": "2.0.2",
"expo": "56",
"expo-asset": "~56.0.19",
"expo-constants": "~56.0.20",
"expo-font": "~56.0.7",
"expo-splash-screen": "~56.0.12",
"expo-status-bar": "~56.0.4",
"expo": "55",
"expo-asset": "~55.0.17",
"expo-constants": "~55.0.16",
"expo-font": "~55.0.8",
"expo-splash-screen": "~55.0.22",
"expo-status-bar": "~55.0.6",
"nativewind": "^5.0.0-preview.4",
"react": "19.2.3",
"react-dom": "19.2.3",
"react-native": "0.85.3",
"react": "19.2.0",
"react-dom": "19.2.0",
"react-native": "0.83.6",
"react-native-css": "^3.0.7",
"react-native-gesture-handler": "~2.31.1",
"react-native-gesture-handler": "~2.30.0",
"react-native-get-random-values": "~1.11.0",
"react-native-reanimated": "4.3.1",
"react-native-safe-area-context": "~5.7.0",
"react-native-screens": "4.25.2",
"react-native-reanimated": "4.2.1",
"react-native-safe-area-context": "~5.6.0",
"react-native-screens": "~4.23.0",
"react-native-web": "^0.21.0",
"react-native-worklets": "0.8.3",
"react-native-worklets": "0.7.4",
"uuid": "^9.0.1"
},
"devDependencies": {
"@babel/core": "^7.29.0",
"@babel/core": "^7.24.0",
"@tailwindcss/postcss": "^4.3.0",
"@types/react": "~19.2.10",
"@types/react-native": "~0.70.6",
Expand Down
6 changes: 0 additions & 6 deletions jest/global-setup.js

This file was deleted.

2 changes: 1 addition & 1 deletion lerna.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"version": "56.0.1",
"version": "55.0.0",
"npmClient": "yarn",
"packages": [
"packages/*",
Expand Down
12 changes: 4 additions & 8 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,10 @@
"@babel/preset-env": "^7.26.0",
"@babel/preset-typescript": "^7.26.0",
"@eslint/compat": "^1.2.3",
"@react-native/babel-preset": "^0.86.0",
"@testing-library/react-native": "^14.0.1",
"@testing-library/jest-native": "^5.4.3",
"@testing-library/react-native": "^12.9.0",
"@types/jest": "^29.5.14",
"@types/react-test-renderer": "^18.3.0",
"babel-jest": "^29.7.0",
"dotenv": "^16.4.5",
"eslint": "^9.15.0",
Expand All @@ -61,14 +62,13 @@
"husky": "^9.1.7",
"jest": "^29.7.0",
"jest-environment-jsdom": "^29.7.0",
"jest-expo": "56.0.5",
"jest-expo": "^54.0.2",
"lerna": "^9.0.7",
"lint-staged": "^15.2.10",
"patch-package": "^8.0.0",
"postinstall-postinstall": "^2.1.0",
"prettier": "^3.4.1",
"rimraf": "^6.0.1",
"test-renderer": "^1.2.0",
"ts-node": "^10.9.2",
"typescript": "~5.7.2",
"typescript-eslint": "^8.16.0",
Expand All @@ -89,9 +89,5 @@
"not samsung <= 4"
],
"node": "16"
},
"dependencies": {
"@react-native/jest-preset": "^0.86.0",
"lodash": "^4.18.1"
}
}
1 change: 0 additions & 1 deletion packages/core/jest-setup.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import "@shopify/flash-list/jestSetup";
import "react-native-gesture-handler/jestSetup";

jest.mock("react-native-worklets", () =>
require("react-native-worklets/lib/module/mock")
Expand Down
37 changes: 19 additions & 18 deletions packages/core/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@draftbit/core",
"version": "56.0.1",
"version": "55.0.0",
"description": "Core (non-native) Components",
"main": "./src/index.tsx",
"react-native": "./src/index.tsx",
Expand Down Expand Up @@ -42,7 +42,7 @@
"homepage": "https://github.com/draftbit/react-native-jigsaw#readme",
"dependencies": {
"@draftbit/react-theme-provider": "^2.1.1",
"@draftbit/theme": "56.0.1",
"@draftbit/theme": "55.0.0",
"@emotion/react": "^11.13.5",
"@emotion/styled": "^11.13.5",
"@expo/vector-icons": "^15.0.3",
Expand All @@ -51,15 +51,16 @@
"@lottiefiles/react-lottie-player": "3.5.3",
"@mui/material": "^6.1.9",
"@mui/x-date-pickers": "^7.22.3",
"@react-native-community/slider": "5.2.0",
"@react-native-community/slider": "5.1.2",
"@react-native-picker/picker": "2.11.4",
"@react-native/assets-registry": "0.83.10",
"@shopify/flash-list": "2.0.2",
"color": "^4.2.3",
"date-fns": "^4.1.0",
"dateformat": "^5.0.3",
"expo-audio": "~56.0.12",
"expo-image": "~56.0.11",
"expo-video": "~56.1.4",
"expo-audio": "~55.0.15",
"expo-image": "~55.0.11",
"expo-video": "~55.0.18",
"lodash.isequal": "^4.5.0",
"lodash.isnumber": "^3.0.3",
"lodash.omit": "^4.5.0",
Expand All @@ -70,23 +71,24 @@
"react-native-date-picker": "^5.0.7",
"react-native-deck-swiper": "^2.0.17",
"react-native-dropdown-picker": "^5.4.7-beta.1",
"react-native-gesture-handler": "~2.31.1",
"react-native-gesture-handler": "~2.30.0",
"react-native-keyboard-aware-scroll-view": "^0.9.5",
"react-native-markdown-display": "^7.0.2",
"react-native-modal-datetime-picker": "^18.0.0",
"react-native-pager-view": "8.0.1",
"react-native-reanimated": "4.3.1",
"react-native-pager-view": "8.0.0",
"react-native-reanimated": "4.2.1",
"react-native-select-dropdown": "4.0.1",
"react-native-shadow-2": "^7.1.1",
"react-native-svg": "15.15.4",
"react-native-svg": "15.15.3",
"react-native-swipe-list-view": "^3.2.9",
"react-native-tab-view": "^3.4.0",
"react-native-web-swiper": "^2.2.4",
"react-native-webview": "13.16.1",
"react-native-worklets": "0.8.3",
"react-native-webview": "13.16.0",
"react-native-worklets": "0.7.4",
"react-native-youtube-iframe": "^2.3.0",
"react-youtube": "^10.1.0",
"uuid": "^11.0.3"
"uuid": "^11.0.3",
"punycode": "^2.3.1"
},
"peerDependencies": {
"react-native-avoid-softinput": "^4.0.1"
Expand All @@ -108,8 +110,8 @@
},
"jest": {
"preset": "jest-expo",
"globalSetup": "<rootDir>/../../jest/global-setup.js",
"setupFilesAfterEnv": [
"@testing-library/jest-native/extend-expect",
"./jest-setup.js"
],
"testPathIgnorePatterns": [
Expand All @@ -119,9 +121,8 @@
".*\\.test\\.skip\\.tsx$"
],
"transformIgnorePatterns": [
"/node_modules/(?!(.pnpm|react-native|@react-native|@react-native-community|expo|@expo|@expo-google-fonts|react-navigation|@react-navigation|@sentry/react-native|native-base|standard-navigation|dateformat|uuid))",
"/node_modules/react-native-reanimated/plugin/",
"/node_modules/@react-native/babel-preset/"
]
"node_modules/(?!((jest-)?react-native|@react-native(-community)?)|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|@unimodules/.*|unimodules|sentry-expo|native-base|react-native-svg|dateformat)"
],
"testEnvironment": "node"
}
}
34 changes: 17 additions & 17 deletions packages/core/src/__tests__/Debouncing.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ beforeEach(() => jest.clearAllMocks());
describe("Text Input debouncing test", () => {
test.each([200, 500, 1000])(
"should onChangeTextDelayed be called once with %s delay in TextInput",
async (delay) => {
(delay) => {
const Wrapper: React.FC = () => {
const [value, setValue] = React.useState("");
return (
Expand All @@ -29,14 +29,14 @@ describe("Text Input debouncing test", () => {
);
};

await render(<Wrapper />);
await testDebounce("first", "second", delay);
render(<Wrapper />);
testDebounce("first", "second", delay);
}
);

test.each([200, 500, 1000])(
"should onChangeTextDelayed be called once with %s delay in TextField",
async (delay) => {
(delay) => {
const Wrapper: React.FC = () => {
const [value, setValue] = React.useState("");
return (
Expand All @@ -52,14 +52,14 @@ describe("Text Input debouncing test", () => {
);
};

await render(<Wrapper />);
await testDebounce("first", "second", delay);
render(<Wrapper />);
testDebounce("first", "second", delay);
}
);

test.each([200, 500, 1000])(
"should onChangeTextDelayed be called once with %s delay in NumberInput",
async (delay) => {
(delay) => {
const Wrapper: React.FC = () => {
const [value, setValue] = React.useState<number | undefined>(0);
return (
Expand All @@ -72,14 +72,14 @@ describe("Text Input debouncing test", () => {
);
};

await render(<Wrapper />);
await testDebounce(1, 23, delay);
render(<Wrapper />);
testDebounce(1, 23, delay);
}
);

test.each([200, 500, 1000])(
"should onChangeTextDelayed be called once with %s delay in PinInput",
async (delay) => {
(delay) => {
const Wrapper: React.FC = () => {
const [value, setValue] = React.useState("");
return (
Expand All @@ -92,27 +92,27 @@ describe("Text Input debouncing test", () => {
);
};

await render(<Wrapper />);
await testDebounce("first", "second", delay);
render(<Wrapper />);
testDebounce("first", "second", delay);
}
);
});

async function testDebounce(
function testDebounce(
valueOne: string | number,
valueTwo: string | number,
delay: number
) {
const textInput = screen.getByTestId("native-text-input");

await fireEvent.changeText(textInput, String(valueOne));
await fireEvent.changeText(textInput, String(valueTwo));
act(() => fireEvent.changeText(textInput, valueOne));
act(() => fireEvent.changeText(textInput, valueTwo));

await act(() => jest.advanceTimersByTime(delay / 2));
act(() => jest.advanceTimersByTime(delay / 2));
//Should not have been called at this point, since delay has not passed
expect(onChangeTextDelayed).toHaveBeenCalledTimes(0);

await act(() => jest.advanceTimersByTime(delay / 2));
act(() => jest.advanceTimersByTime(delay / 2));
expect(onChangeTextDelayed).toHaveBeenCalledTimes(1);
expect(onChangeTextDelayed).toHaveBeenCalledWith(valueTwo);
}
Loading
Loading