From 62d389a92d1fc87ab5aabcaeba9be31f7e246e93 Mon Sep 17 00:00:00 2001 From: Ehsan Sarshar Date: Sun, 31 Mar 2024 19:35:50 +0430 Subject: [PATCH 1/3] fix(core): group press state not triggering --- packages/web/src/createComponent.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web/src/createComponent.tsx b/packages/web/src/createComponent.tsx index b6fdd8d8084..3b3ee318fcc 100644 --- a/packages/web/src/createComponent.tsx +++ b/packages/web/src/createComponent.tsx @@ -1010,7 +1010,7 @@ export function createComponent< }), onPressIn: attachPress ? (e) => { - if (runtimePressStyle) { + if (runtimePressStyle || groupName) { setStateShallow({ press: true, pressIn: true, From cf5f9b20140876d6c1c18ebef4c784f9cc92a764 Mon Sep 17 00:00:00 2001 From: Ehsan Sarshar Date: Mon, 1 Apr 2024 15:02:33 +0430 Subject: [PATCH 2/3] initial commit --- apps/kitchen-sink/src/App.native.tsx | 3 +- apps/kitchen-sink/webpack.config.js | 2 +- apps/sc/.gitignore | 36 +++ apps/sc/README.md | 36 +++ apps/sc/app/NextTamaguiProvider.tsx | 34 +++ apps/sc/app/favicon.ico | Bin 0 -> 25931 bytes apps/sc/app/globals.css | 107 ++++++++ apps/sc/app/layout.tsx | 26 ++ apps/sc/app/page.module.css | 230 ++++++++++++++++++ apps/sc/app/page.tsx | 78 ++++++ apps/sc/biome.json | 1 + apps/sc/next.config.mjs | 40 +++ apps/sc/package.json | 25 ++ apps/sc/public/next.svg | 1 + apps/sc/public/vercel.svg | 1 + apps/sc/tamagui.config.ts | 16 ++ apps/sc/tsconfig.json | 26 ++ apps/site/lib/email.ts | 2 +- packages/adapt/src/Adapt.tsx | 5 +- packages/build/tamagui-build.js | 2 +- packages/rsc-safe/LICENSE | 21 ++ packages/rsc-safe/biome.json | 1 + packages/rsc-safe/package.json | 49 ++++ packages/rsc-safe/src/createContext.tsx | 32 +++ packages/rsc-safe/src/fake-react.ts | 37 +++ packages/rsc-safe/src/index.ts | 7 + packages/rsc-safe/src/real-react.ts | 9 + packages/rsc-safe/tsconfig.json | 19 ++ packages/rsc-safe/types/createContext.d.ts | 4 + packages/rsc-safe/types/fake-hooks.d.ts | 12 + packages/rsc-safe/types/fake-react.d.ts | 12 + packages/rsc-safe/types/index.d.ts | 2 + packages/rsc-safe/types/react.client.d.ts | 2 + packages/rsc-safe/types/react.server.d.ts | 12 + packages/rsc-safe/types/real-hooks.d.ts | 2 + packages/rsc-safe/types/real-hooks2.d.ts | 2 + packages/rsc-safe/types/real-react.d.ts | 2 + packages/use-did-finish-ssr/src/index.ts | 4 +- packages/web/package.json | 1 + packages/web/src/createComponent.tsx | 12 +- packages/web/src/createTamagui.ts | 2 + .../web/src/helpers/ThemeManagerContext.tsx | 4 +- .../web/src/helpers/createStyledContext.tsx | 4 +- packages/web/src/hooks/createContext.tsx | 22 ++ packages/web/src/hooks/useMedia.tsx | 4 +- packages/web/src/hooks/useServerHooks.tsx | 10 + packages/web/src/hooks/useTheme.tsx | 7 +- packages/web/src/index.ts | 1 + packages/web/src/views/Theme.tsx | 5 +- packages/web/src/views/ThemeProvider.tsx | 1 + packages/web/types/hooks/createContext.d.ts | 3 + packages/web/types/hooks/useServerHooks.d.ts | 4 + packages/web/types/hooks/useServerRef.d.ts | 3 + packages/web/types/index.d.ts | 1 + yarn.lock | 213 ++++++++++++++++ 55 files changed, 1180 insertions(+), 17 deletions(-) create mode 100644 apps/sc/.gitignore create mode 100644 apps/sc/README.md create mode 100644 apps/sc/app/NextTamaguiProvider.tsx create mode 100644 apps/sc/app/favicon.ico create mode 100644 apps/sc/app/globals.css create mode 100644 apps/sc/app/layout.tsx create mode 100644 apps/sc/app/page.module.css create mode 100644 apps/sc/app/page.tsx create mode 120000 apps/sc/biome.json create mode 100644 apps/sc/next.config.mjs create mode 100644 apps/sc/package.json create mode 100644 apps/sc/public/next.svg create mode 100644 apps/sc/public/vercel.svg create mode 100644 apps/sc/tamagui.config.ts create mode 100644 apps/sc/tsconfig.json create mode 100644 packages/rsc-safe/LICENSE create mode 120000 packages/rsc-safe/biome.json create mode 100644 packages/rsc-safe/package.json create mode 100644 packages/rsc-safe/src/createContext.tsx create mode 100644 packages/rsc-safe/src/fake-react.ts create mode 100644 packages/rsc-safe/src/index.ts create mode 100644 packages/rsc-safe/src/real-react.ts create mode 100644 packages/rsc-safe/tsconfig.json create mode 100644 packages/rsc-safe/types/createContext.d.ts create mode 100644 packages/rsc-safe/types/fake-hooks.d.ts create mode 100644 packages/rsc-safe/types/fake-react.d.ts create mode 100644 packages/rsc-safe/types/index.d.ts create mode 100644 packages/rsc-safe/types/react.client.d.ts create mode 100644 packages/rsc-safe/types/react.server.d.ts create mode 100644 packages/rsc-safe/types/real-hooks.d.ts create mode 100644 packages/rsc-safe/types/real-hooks2.d.ts create mode 100644 packages/rsc-safe/types/real-react.d.ts create mode 100644 packages/web/src/hooks/createContext.tsx create mode 100644 packages/web/src/hooks/useServerHooks.tsx create mode 100644 packages/web/types/hooks/createContext.d.ts create mode 100644 packages/web/types/hooks/useServerHooks.d.ts create mode 100644 packages/web/types/hooks/useServerRef.d.ts diff --git a/apps/kitchen-sink/src/App.native.tsx b/apps/kitchen-sink/src/App.native.tsx index 6405120755b..12c1e05116c 100644 --- a/apps/kitchen-sink/src/App.native.tsx +++ b/apps/kitchen-sink/src/App.native.tsx @@ -7,6 +7,7 @@ import { SafeAreaProvider, useSafeAreaInsets } from 'react-native-safe-area-cont import { Navigation } from './Navigation' import { Provider } from './provider' import { ThemeContext } from './useKitchenSinkTheme' +import { Sandbox } from './Sandbox' if (Platform.OS === 'ios') { require('./iosSheetSetup') @@ -26,7 +27,7 @@ export default function App() { }, [colorScheme]) const children = useMemo(() => { - return + return }, []) const themeContext = useMemo(() => { diff --git a/apps/kitchen-sink/webpack.config.js b/apps/kitchen-sink/webpack.config.js index 77a327e7785..67da750f58e 100644 --- a/apps/kitchen-sink/webpack.config.js +++ b/apps/kitchen-sink/webpack.config.js @@ -98,7 +98,7 @@ module.exports = { components: ['tamagui', '@tamagui/sandbox-ui'], importsWhitelist: ['constants.js'], // enableDynamicEvaluation: true, - disableExtraction, + disableExtraction: false, themeBuilder: { input: '../../packages/themes/src/themes-new.ts', output: path.join(require.resolve('@tamagui/themes/src/themes-new.ts'), '..', 'generated-new.ts'), diff --git a/apps/sc/.gitignore b/apps/sc/.gitignore new file mode 100644 index 00000000000..fd3dbb571a1 --- /dev/null +++ b/apps/sc/.gitignore @@ -0,0 +1,36 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js +.yarn/install-state.gz + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/apps/sc/README.md b/apps/sc/README.md new file mode 100644 index 00000000000..c4033664f80 --- /dev/null +++ b/apps/sc/README.md @@ -0,0 +1,36 @@ +This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +# or +pnpm dev +# or +bun dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. + +This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. diff --git a/apps/sc/app/NextTamaguiProvider.tsx b/apps/sc/app/NextTamaguiProvider.tsx new file mode 100644 index 00000000000..0e8be08e7f6 --- /dev/null +++ b/apps/sc/app/NextTamaguiProvider.tsx @@ -0,0 +1,34 @@ +'use client' +import { useServerInsertedHTML } from 'next/navigation' +import { NextThemeProvider, useRootTheme } from '@tamagui/next-theme' +import Tamagui from '../tamagui.config' + +import { TamaguiProvider } from 'tamagui' +import { useMemo } from 'react' +export function NextTamaguiProvider({ children }: { children: any }) { + const [theme, setTheme] = useRootTheme() + + // memo to avoid re-render on dark/light change + useServerInsertedHTML(() => { + // the first time this runs you'll get the full CSS including all themes + + // after that, it will only return CSS generated since the last call + + return