Skip to content

Commit 562c91e

Browse files
authored
Merge branch 'jrad/ui-prop-cleanup' into jrad/js-prop-bundling
2 parents 1f13b1a + a87e669 commit 562c91e

4 files changed

Lines changed: 34 additions & 10 deletions

File tree

.changeset/shiny-owls-dance.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,5 @@ import { ui } from '@clerk/ui';
1717
...
1818
</ClerkProvider>
1919
```
20+
21+
**Migration note**: If you were previously using the internal `clerkUiCtor` prop, migrate to the new `ui` prop by importing `ui` from `@clerk/ui`.

.github/actions/verdaccio/action.yml

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,30 @@ runs:
6969
sleep 2
7070
done
7171
pnpm config set $(echo ${{ inputs.registry }} | sed -E 's/https?://')/:_authToken secretToken
72-
# Verify proxy is working by trying to fetch a known package
73-
pnpm view semver > /dev/null 2>&1 || echo "Warning: Could not fetch semver package, proxy might not be working"
72+
73+
# Verify proxy is working by testing multiple packages with retries
74+
# These packages are known transitive dependencies that have caused CI failures
75+
test_packages=("semver" "browserslist" "update-browserslist-db")
76+
max_retries=3
77+
retry_delay=2
78+
79+
for pkg in "${test_packages[@]}"; do
80+
echo "Verifying proxy can fetch: $pkg"
81+
for attempt in $(seq 1 $max_retries); do
82+
if pnpm view "$pkg" version > /dev/null 2>&1; then
83+
echo "✓ Successfully fetched $pkg"
84+
break
85+
fi
86+
if [ $attempt -eq $max_retries ]; then
87+
echo "✗ Failed to fetch $pkg after $max_retries attempts"
88+
echo "Proxy verification failed - this may cause integration test failures"
89+
exit 1
90+
fi
91+
echo " Attempt $attempt failed, retrying in ${retry_delay}s..."
92+
sleep $retry_delay
93+
done
94+
done
95+
echo "Proxy verification complete - all test packages accessible"
7496
7597
- name: Print published Clerk package versions
7698
shell: bash

packages/chrome-extension/src/react/ClerkProvider.tsx

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
import type { Clerk } from '@clerk/clerk-js/no-rhc';
22
import type { ClerkProviderProps as ClerkReactProviderProps } from '@clerk/react';
33
import { ClerkProvider as ClerkReactProvider } from '@clerk/react';
4-
import type { Ui } from '@clerk/react/internal';
5-
import { ClerkUi } from '@clerk/ui/entry';
4+
import { ui } from '@clerk/ui';
65
import React from 'react';
76

87
import { createClerkClient } from '../internal/clerk';
98
import type { StorageCache } from '../internal/utils/storage';
109

11-
type ChromeExtensionClerkProviderProps<TUi extends Ui = Ui> = ClerkReactProviderProps<TUi> & {
10+
type ChromeExtensionClerkProviderProps = ClerkReactProviderProps & {
1211
/**
1312
* @experimental
1413
* @description Enables the listener to sync host cookies on changes.
@@ -18,7 +17,7 @@ type ChromeExtensionClerkProviderProps<TUi extends Ui = Ui> = ClerkReactProvider
1817
syncHost?: string;
1918
};
2019

21-
export function ClerkProvider<TUi extends Ui = Ui>(props: ChromeExtensionClerkProviderProps<TUi>): JSX.Element | null {
20+
export function ClerkProvider(props: ChromeExtensionClerkProviderProps): JSX.Element | null {
2221
const { children, storageCache, syncHost, __experimental_syncHostListener, ...rest } = props;
2322
const { publishableKey = '' } = props;
2423

@@ -36,7 +35,7 @@ export function ClerkProvider<TUi extends Ui = Ui>(props: ChromeExtensionClerkPr
3635
<ClerkReactProvider
3736
{...rest}
3837
Clerk={clerkInstance}
39-
clerkUICtor={ClerkUi}
38+
ui={ui}
4039
standardBrowser={!syncHost}
4140
>
4241
{children}

packages/nextjs/src/utils/clerk-script.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ function ClerkScript(props: ClerkScriptProps) {
3838
}
3939

4040
export function ClerkScripts({ router }: { router: ClerkScriptProps['router'] }) {
41-
const { publishableKey, clerkJSUrl, clerkJSVersion, clerkUIUrl, nonce, prefetchUI } = useClerkNextOptions();
41+
const { publishableKey, clerkJSUrl, clerkJSVersion, clerkUIUrl, nonce, prefetchUI, ui } = useClerkNextOptions();
4242
const { domain, proxyUrl } = useClerk();
4343

4444
if (!publishableKey) {
@@ -68,8 +68,9 @@ export function ClerkScripts({ router }: { router: ClerkScriptProps['router'] })
6868
but doesn't execute it, avoiding race conditions with __clerkSharedModules
6969
registration (which happens when React code runs @clerk/ui/register).
7070
When loadClerkUIScript() later adds a <script> tag, the browser uses the
71-
cached resource and executes it without re-downloading. */}
72-
{prefetchUI !== false && (
71+
cached resource and executes it without re-downloading.
72+
Skip preload when ui prop is passed - the bundled UI will be used instead. */}
73+
{prefetchUI !== false && !ui && (
7374
<link
7475
rel='preload'
7576
href={clerkUIScriptUrl(opts)}

0 commit comments

Comments
 (0)