diff --git a/.changeset/hip-lemons-move.md b/.changeset/hip-lemons-move.md new file mode 100644 index 00000000000..040c95e6e75 --- /dev/null +++ b/.changeset/hip-lemons-move.md @@ -0,0 +1,5 @@ +--- +'@builder.io/qwik': patch +--- + +Deprecated event$, it will be removed in v2. Instead, use `$()`, and inside the function add `if (isServer) { return; }` diff --git a/packages/docs/src/components/theme-toggle/theme-toggle.tsx b/packages/docs/src/components/theme-toggle/theme-toggle.tsx index 2b8433c5f75..8cc071dd367 100644 --- a/packages/docs/src/components/theme-toggle/theme-toggle.tsx +++ b/packages/docs/src/components/theme-toggle/theme-toggle.tsx @@ -1,4 +1,4 @@ -import { component$, event$, useContext, useStyles$ } from '@builder.io/qwik'; +import { component$, $, useContext, useStyles$ } from '@builder.io/qwik'; import { SunAndMoon } from './sun-and-moon'; import { themeStorageKey } from '../router-head/theme-script'; import themeToggle from './theme-toggle.css?inline'; @@ -45,7 +45,7 @@ export const ThemeToggle = component$(() => { useStyles$(themeToggle); const state = useContext(GlobalStore); - const onClick$ = event$(() => { + const onClick$ = $(() => { state.theme = state.theme === 'light' ? 'dark' : 'light'; setPreference(state.theme); }); diff --git a/packages/docs/src/routes/api/qwik/api.json b/packages/docs/src/routes/api/qwik/api.json index b65816293a7..0be60fb22fd 100644 --- a/packages/docs/src/routes/api/qwik/api.json +++ b/packages/docs/src/routes/api/qwik/api.json @@ -819,7 +819,7 @@ } ], "kind": "Function", - "content": "```typescript\nevent$: (qrl: T) => QRL\n```\n\n\n\n\n
\n\nParameter\n\n\n\n\nType\n\n\n\n\nDescription\n\n\n
\n\nqrl\n\n\n\n\nT\n\n\n\n\n\n
\n**Returns:**\n\n[QRL](#qrl)<T>", + "content": "> Warning: This API is now obsolete.\n> \n> It will be removed in v2. Instead, use `$()`, and inside the function add `if (isServer) { return; }`\n> \n\n\n```typescript\nevent$: (qrl: T) => QRL\n```\n\n\n\n\n
\n\nParameter\n\n\n\n\nType\n\n\n\n\nDescription\n\n\n
\n\nqrl\n\n\n\n\nT\n\n\n\n\n\n
\n**Returns:**\n\n[QRL](#qrl)<T>", "editUrl": "https://github.com/QwikDev/qwik/tree/main/packages/qwik/src/core/qrl/qrl.public.ts", "mdFile": "qwik.event_.md" }, diff --git a/packages/docs/src/routes/api/qwik/index.mdx b/packages/docs/src/routes/api/qwik/index.mdx index ed080d84a66..b0c533d4934 100644 --- a/packages/docs/src/routes/api/qwik/index.mdx +++ b/packages/docs/src/routes/api/qwik/index.mdx @@ -2168,6 +2168,10 @@ any \| undefined ## event$ +> Warning: This API is now obsolete. +> +> It will be removed in v2. Instead, use `$()`, and inside the function add `if (isServer) { return; }` + ```typescript event$: (qrl: T) => QRL; ``` diff --git a/packages/qwik-city/src/middleware/bun/middleware.bun.api.md b/packages/qwik-city/src/middleware/bun/middleware.bun.api.md index a1633103538..44d27c233e8 100644 --- a/packages/qwik-city/src/middleware/bun/middleware.bun.api.md +++ b/packages/qwik-city/src/middleware/bun/middleware.bun.api.md @@ -3,25 +3,27 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts + import type { ClientConn } from '@builder.io/qwik-city/middleware/request-handler'; import type { ServerRenderOptions } from '@builder.io/qwik-city/middleware/request-handler'; // @public (undocumented) export function createQwikCity(opts: QwikCityBunOptions): { - router: (request: Request) => Promise; - notFound: (request: Request) => Promise; - staticFile: (request: Request) => Promise; + router: (request: Request) => Promise; + notFound: (request: Request) => Promise; + staticFile: (request: Request) => Promise; }; // @public (undocumented) export interface QwikCityBunOptions extends ServerRenderOptions { - // (undocumented) - getClientConn?: (request: Request) => ClientConn; - static?: { - root?: string; - cacheControl?: string; - }; + // (undocumented) + getClientConn?: (request: Request) => ClientConn; + static?: { + root?: string; + cacheControl?: string; + }; } // (No @packageDocumentation comment for this package) + ``` diff --git a/packages/qwik-city/src/middleware/deno/middleware.deno.api.md b/packages/qwik-city/src/middleware/deno/middleware.deno.api.md index 85ad1999e33..6b833fe21e0 100644 --- a/packages/qwik-city/src/middleware/deno/middleware.deno.api.md +++ b/packages/qwik-city/src/middleware/deno/middleware.deno.api.md @@ -3,41 +3,43 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts + import type { ClientConn } from '@builder.io/qwik-city/middleware/request-handler'; import type { ServerRenderOptions } from '@builder.io/qwik-city/middleware/request-handler'; // @public (undocumented) export function createQwikCity(opts: QwikCityDenoOptions): { - router: (request: Request, info: ServeHandlerInfo) => Promise; - notFound: (request: Request) => Promise; - staticFile: (request: Request) => Promise; + router: (request: Request, info: ServeHandlerInfo) => Promise; + notFound: (request: Request) => Promise; + staticFile: (request: Request) => Promise; }; // @public (undocumented) export interface NetAddr { - // (undocumented) - hostname: string; - // (undocumented) - port: number; - // (undocumented) - transport: 'tcp' | 'udp'; + // (undocumented) + hostname: string; + // (undocumented) + port: number; + // (undocumented) + transport: 'tcp' | 'udp'; } // @public (undocumented) export interface QwikCityDenoOptions extends ServerRenderOptions { - // (undocumented) - getClientConn?: (request: Request, info: ServeHandlerInfo) => ClientConn; - static?: { - root?: string; - cacheControl?: string; - }; + // (undocumented) + getClientConn?: (request: Request, info: ServeHandlerInfo) => ClientConn; + static?: { + root?: string; + cacheControl?: string; + }; } // @public (undocumented) export interface ServeHandlerInfo { - // (undocumented) - remoteAddr: NetAddr; + // (undocumented) + remoteAddr: NetAddr; } // (No @packageDocumentation comment for this package) + ``` diff --git a/packages/qwik-city/src/runtime/src/service-worker/qwik-city.service-worker.api.md b/packages/qwik-city/src/runtime/src/service-worker/qwik-city.service-worker.api.md index 8b0806862d3..2808fcb0cc7 100644 --- a/packages/qwik-city/src/runtime/src/service-worker/qwik-city.service-worker.api.md +++ b/packages/qwik-city/src/runtime/src/service-worker/qwik-city.service-worker.api.md @@ -3,8 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts + // @public @deprecated (undocumented) export const setupServiceWorker: () => void; // (No @packageDocumentation comment for this package) + ``` diff --git a/packages/qwik-city/src/runtime/src/spa-init.ts b/packages/qwik-city/src/runtime/src/spa-init.ts index 183e3345d33..af0b2083c98 100644 --- a/packages/qwik-city/src/runtime/src/spa-init.ts +++ b/packages/qwik-city/src/runtime/src/spa-init.ts @@ -2,8 +2,8 @@ import type { ClientSPAWindow } from './qwik-city-component'; import type { ScrollHistoryState } from './scroll-restoration'; import type { ScrollState } from './types'; -import { isDev } from '@builder.io/qwik'; -import { event$ } from '@builder.io/qwik'; +import { isDev, isServer } from '@builder.io/qwik'; +import { $ } from '@builder.io/qwik'; // TODO Dedupe handler code from here and QwikCityProvider? // TODO Navigation API; check for support & simplify. @@ -14,13 +14,18 @@ import { event$ } from '@builder.io/qwik'; // - Robust, fully relies only on history. (scrollRestoration = 'manual') // ! DO NOT IMPORT OR USE ANY EXTERNAL REFERENCES IN THIS SCRIPT. -export default event$((_: Event, el: Element) => { +export default $((_: Event, el: Element) => { const win: ClientSPAWindow = window; const spa = '_qCitySPA'; const initPopstate = '_qCityInitPopstate'; const initAnchors = '_qCityInitAnchors'; const initVisibility = '_qCityInitVisibility'; const initScroll = '_qCityInitScroll'; + + if (isServer) { + return; + } + if ( !win[spa] && !win[initPopstate] && diff --git a/packages/qwik-city/src/static/qwik-city.static.api.md b/packages/qwik-city/src/static/qwik-city.static.api.md index 7f37b96d166..eef0fd27fc8 100644 --- a/packages/qwik-city/src/static/qwik-city.static.api.md +++ b/packages/qwik-city/src/static/qwik-city.static.api.md @@ -3,6 +3,7 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts + /// import type { RenderOptions } from '@builder.io/qwik/server'; @@ -12,39 +13,40 @@ export function generate(opts: StaticGenerateOptions): Promise Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts + // @public export const isBrowser: boolean; @@ -13,4 +14,5 @@ export const isDev: boolean; export const isServer: boolean; // (No @packageDocumentation comment for this package) + ``` diff --git a/packages/qwik/src/core/qrl/qrl.public.ts b/packages/qwik/src/core/qrl/qrl.public.ts index 2d3aa303dc8..6d36d9399aa 100644 --- a/packages/qwik/src/core/qrl/qrl.public.ts +++ b/packages/qwik/src/core/qrl/qrl.public.ts @@ -270,7 +270,7 @@ export const eventQrl = (qrl: QRL): QRL => { return qrl; }; -/** @public */ +/** @public @deprecated It will be removed in v2. Instead, use `$()`, and inside the function add `if (isServer) { return; }` */ export const event$ = implicit$FirstArg(eventQrl); /** @alpha */ diff --git a/packages/qwik/src/core/qwik.core.api.md b/packages/qwik/src/core/qwik.core.api.md index 290d339428a..c0df75dfa45 100644 --- a/packages/qwik/src/core/qwik.core.api.md +++ b/packages/qwik/src/core/qwik.core.api.md @@ -230,7 +230,7 @@ export interface ErrorBoundaryStore { error: any | undefined; } -// @public (undocumented) +// @public @deprecated (undocumented) export const event$: (qrl: T) => QRL; // @public diff --git a/starters/apps/e2e/src/components/render/render.tsx b/starters/apps/e2e/src/components/render/render.tsx index 08ea6ad2268..91b3c1c2180 100644 --- a/starters/apps/e2e/src/components/render/render.tsx +++ b/starters/apps/e2e/src/components/render/render.tsx @@ -4,7 +4,7 @@ import { useStore, useStylesScoped$, useTask$, - event$, + $, h, jsx, SkipRender, @@ -549,7 +549,7 @@ export const Issue3398 = component$(() => { export const Issue3479 = component$(() => { const count = useSignal(0); const attributes = { - onClick$: event$(() => count.value++), + onClick$: $(() => count.value++), }; const countStr = String(count.value) + ""; return (