Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(router): Add className to Link prop #24797

Merged
merged 12 commits into from
Oct 12, 2023
Merged

Conversation

EvanBacon
Copy link
Contributor

Why

  • Adds Tailwind/Nativewind support to Link.

How

  • Add className prop to Link which passes the className as a style to React Native web's Text component on web.
  • Forward className and updated style to Slot with asChild.
  • Prevent using createElement in favor of JSX to ensure Nativewind can interop the styles on native platforms.

Test Plan

  • Update the Jest config to run against web and iOS runners (previously just iOS).
  • Add tests for rendering the Link component.

Checklist

@expo-bot expo-bot added the bot: suggestions ExpoBot has some suggestions label Oct 9, 2023
EvanBacon and others added 2 commits October 9, 2023 14:42
Co-authored-by: Expo Bot <34669131+expo-bot@users.noreply.github.com>
Co-authored-by: Expo Bot <34669131+expo-bot@users.noreply.github.com>
@expo-bot expo-bot added bot: passed checks ExpoBot has nothing to complain about and removed bot: suggestions ExpoBot has some suggestions labels Oct 11, 2023
@EvanBacon EvanBacon merged commit 3afc3a9 into main Oct 12, 2023
14 of 19 checks passed
@EvanBacon EvanBacon deleted the @evanbacon/router/link-classname branch October 12, 2023 19:26
marklawlor pushed a commit that referenced this pull request Oct 30, 2023
# Why

- Adds Tailwind/Nativewind support to Link.

<!--
Please describe the motivation for this PR, and link to relevant GitHub
issues, forums posts, or feature requests.
-->

# How

- Add `className` prop to `Link` which passes the className as a style
to React Native web's Text component on web.
- Forward `className` and updated `style` to `Slot` with `asChild`.
- Prevent using `createElement` in favor of JSX to ensure Nativewind can
interop the styles on native platforms.

# Test Plan

- Update the Jest config to run against web and iOS runners (previously
just iOS).
- Add tests for rendering the Link component.

<!--
Please describe how you tested this change and how a reviewer could
reproduce your test, especially if this PR does not include automated
tests! If possible, please also provide terminal output and/or
screenshots demonstrating your test/reproduction.
-->

# Checklist

<!--
Please check the appropriate items below if they apply to your diff.
This is required for changes to Expo modules.
-->

- [ ] Documentation is up to date to reflect these changes (eg:
https://docs.expo.dev and README.md).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).

---------

Co-authored-by: Expo Bot <34669131+expo-bot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bot: fingerprint compatible bot: passed checks ExpoBot has nothing to complain about
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants