Skip to content

Commit 27998f8

Browse files
committed
fix(auto-imports): inject active element composable
1 parent bb00cfd commit 27998f8

3 files changed

Lines changed: 6 additions & 5 deletions

File tree

packages/stx/src/client-script.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ const BROWSER_CORE_IMPORTS = [
349349
'debounce', 'throttle', 'retry', 'sleep', 'wait', 'delay', 'waitUntil', 'waitWhile',
350350
'lazy', 'clamp', 'rand', 'readableSize',
351351
// Stacks composables that are not part of the STX-native runtime
352-
'useDocumentVisibility', 'useIntervalFn',
352+
'useActiveElement', 'useDocumentVisibility', 'useIntervalFn',
353353
]
354354

355355
export interface BrowserCoreAutoImportResult {

packages/stx/src/runtime-injection.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ export function injectBrowserRuntime(template: string): string {
5656
'browserQuery', 'BrowserQueryBuilder', 'configureBrowser', 'createBrowserModel',
5757
'debounce', 'throttle', 'retry', 'sleep', 'wait', 'delay', 'waitUntil', 'waitWhile',
5858
'lazy', 'clamp', 'rand', 'readableSize',
59-
'useDocumentVisibility', 'useIntervalFn',
59+
'useActiveElement', 'useDocumentVisibility', 'useIntervalFn',
6060
]
6161

6262
// Check for core browser utilities in CLIENT code only

packages/stx/test/client-script-external.test.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,13 +94,14 @@ const result = retry(() => 'ready')
9494
it('auto-imports browser utilities and Stacks-only composables as bundle inputs', () => {
9595
const output = injectBrowserCoreAutoImports(`
9696
const load = debounce(() => {}, 250)
97+
const activeElement = useActiveElement()
9798
const visibility = useDocumentVisibility()
9899
const controls = useIntervalFn(load, 15000)
99100
`)
100101

101-
expect(output.imports).toEqual(['debounce', 'useDocumentVisibility', 'useIntervalFn'])
102+
expect(output.imports).toEqual(['debounce', 'useActiveElement', 'useDocumentVisibility', 'useIntervalFn'])
102103
expect(output.models).toEqual([])
103-
expect(output.code).toContain(`import { debounce, useDocumentVisibility, useIntervalFn } from '@stacksjs/browser'`)
104+
expect(output.code).toContain(`import { debounce, useActiveElement, useDocumentVisibility, useIntervalFn } from '@stacksjs/browser'`)
104105
})
105106

106107
it('does not shadow locally declared browser helper names', () => {
@@ -120,7 +121,7 @@ const load = debounce(() => {})
120121
const output = injectBrowserRuntime(`
121122
<html>
122123
<head></head>
123-
<body><script client>const load = debounce(() => {}, 250)</script></body>
124+
<body><script client>const activeElement = useActiveElement()</script></body>
124125
</html>
125126
`)
126127

0 commit comments

Comments
 (0)