aboutsummaryrefslogtreecommitdiff

@astrojs/preact

4.1.0

Minor Changes

Node.js 18 has now reached end-of-life and should not be used. For now, Astro will continue to support Node.js 18.20.8, which is the final LTS release of Node.js 18, as well as Node.js 20 and Node.js 22 or later. We will drop support for Node.js 18 in a future release, so we recommend upgrading to Node.js 22 as soon as possible. See Astro's Node.js support policy for more details.

:warning: Important note for users of Cloudflare Pages: The current build image for Cloudflare Pages uses Node.js 18.17.1 by default, which is no longer supported by Astro. If you are using Cloudflare Pages you should override the default Node.js version to Node.js 22. This does not affect users of Cloudflare Workers, which uses Node.js 22 by default.

4.0.11

Patch Changes

4.0.10

Patch Changes

4.0.9

Patch Changes

4.0.8

Patch Changes

4.0.7

Patch Changes

4.0.6

Patch Changes

4.0.5

Patch Changes

  • #13323 80926fa Thanks @ematipico! - Updates esbuild and vite to the latest to avoid false positives audits warnings caused by esbuild.

4.0.4

Patch Changes

4.0.3

Patch Changes

4.0.2

Patch Changes

  • #12887 ea603ae Thanks @louisescher! - Adds a warning message when multiple JSX-based UI frameworks are being used without either the include or exclude property being set on the integration.

4.0.1

Patch Changes

4.0.0

Major Changes

Minor Changes

4.0.0-beta.1

Major Changes

Minor Changes

3.5.4

Patch Changes

  • #12481 8a46e80 Thanks @marbrex! - Resolve vite peer dependency problem for strict package managers like Yarn in PnP mode.

3.5.3

Patch Changes

3.5.2

Patch Changes

  • #11834 5f2536b Thanks @ph1p! - Preact signals are now serialized correctly in arrays when they are given to components.

3.5.1

Patch Changes

3.5.0

Minor Changes

  • #11234 4385bf7 Thanks @ematipico! - Adds a new function called addServerRenderer to the Container API. Use this function to manually store renderers inside the instance of your container.

This new function should be preferred when using the Container API in environments like on-demand pages:

```ts import type { APIRoute } from 'astro'; import { experimental_AstroContainer } from 'astro/container'; import reactRenderer from '@astrojs/react/server.js'; import vueRenderer from '@astrojs/vue/server.js'; import ReactComponent from '../components/button.jsx'; import VueComponent from '../components/button.vue';

// MDX runtime is contained inside the Astro core import mdxRenderer from 'astro/jsx/server.js';

// In case you need to import a custom renderer import customRenderer from '../renderers/customRenderer.js';

export const GET: APIRoute = async (ctx) => { const container = await experimental_AstroContainer.create(); container.addServerRenderer({ renderer: reactRenderer }); container.addServerRenderer({ renderer: vueRenderer }); container.addServerRenderer({ renderer: customRenderer }); // You can pass a custom name too container.addServerRenderer({ name: 'customRenderer', renderer: customRenderer, }); const vueComponent = await container.renderToString(VueComponent); return await container.renderToResponse(Component); }; ```

3.4.0

Minor Changes

  • #11144 803dd80 Thanks @ematipico! - The integration now exposes a function called getContainerRenderer, that can be used inside the Container APIs to load the relative renderer.

```js import { experimental_AstroContainer as AstroContainer } from 'astro/container'; import ReactWrapper from '../src/components/ReactWrapper.astro'; import { loadRenderers } from 'astro:container'; import { getContainerRenderer } from '@astrojs/react';

test('ReactWrapper with react renderer', async () => { const renderers = await loadRenderers([getContainerRenderer()]); const container = await AstroContainer.create({ renderers, }); const result = await container.renderToString(ReactWrapper);

expect(result).toContain('Counter');
expect(result).toContain('Count: <!-- -->5');

}); ```

3.3.0

Minor Changes

You can enable Preact devtools in development by setting devtools: true in your preact() integration config:

```js import { defineConfig } from 'astro/config'; import preact from '@astrojs/preact';

export default defineConfig({ integrations: [preact({ devtools: true })], }); ```

3.2.0

Minor Changes

This change is in line with Astro's Node.js support policy.

3.1.2

Patch Changes

3.1.1

Patch Changes

3.1.0

Minor Changes

You can now use lazy components with Suspense:

```jsx import { lazy, Suspense } from 'preact/compat';

const HeavyComponent = lazy(() => import('./HeavyComponent'));

const Component = () => { return ( Loading...\

}> ); }; ```

3.0.2

Patch Changes

3.0.1

Patch Changes

3.0.0

Major Changes

  • #8188 d0679a666 Thanks @ematipico! - Remove support for Node 16. The lowest supported version by Astro and all integrations is now v18.14.1. As a reminder, Node 16 will be deprecated on the 11th September 2023.

  • #8179 6011d52d3 Thanks @matthewp! - Astro 3.0 Release Candidate

  • #7924 519a1c4e8 Thanks @matthewp! - New include and exclude config options

The Preact integration now has new include and exclude config options. Use these if you want to use Preact alongside another JSX framework; include specifies files to be compiled for Preact and exclude does the opposite.

Patch Changes

3.0.0-rc.3

Patch Changes

3.0.0-rc.2

Major Changes

3.0.0-beta.1

Major Changes

The Preact integration now has new include and exclude config options. Use these if you want to use Preact alongside another JSX framework; include specifies files to be compiled for Preact and exclude does the opposite.

3.0.0-beta.0

Major Changes

  • 1eae2e3f7 Thanks @Princesseuh! - Remove support for Node 16. The lowest supported version by Astro and all integrations is now v18.14.1. As a reminder, Node 16 will be deprecated on the 11th September 2023.

2.2.2

Patch Changes

2.2.1

Patch Changes

2.2.0

Minor Changes

This change introduces a new flag that renderers can add called supportsAstroStaticSlot. What this does is let Astro know that the render is sending <astro-static-slot> as placeholder values for static (non-hydrated) slots which Astro will then remove.

This change is completely backwards compatible, but fixes bugs caused by combining ssr-only and client-side framework components like so:

astro <Component> <div> <Component client:load> <span>Nested</span> </Component> </div> </Component>

Patch Changes

2.1.0

Minor Changes

2.0.3

Patch Changes

2.0.2

Patch Changes

2.0.1

Patch Changes

2.0.0

Major Changes

2.0.0-beta.0

See changes in 2.0.0-beta.0 ### Major Changes - [#5782](https://github.com/withastro/astro/pull/5782) [`1f92d64ea`](https://github.com/withastro/astro/commit/1f92d64ea35c03fec43aff64eaf704dc5a9eb30a) Thanks [@Princesseuh](https://github.com/Princesseuh)! - Remove support for Node 14. Minimum supported Node version is now >=16.12.0

1.2.0

Minor Changes

This makes it possible to share client state between Preact islands via signals.

For example, you can create a signals in an Astro component and then pass it to multiple islands:

```astro


// Component Imports import Counter from '../components/Counter'; import { signal } from '@preact/signals'; const count = signal(0);


```

1.1.1

Patch Changes

  • #4842 812658ad2 Thanks @bluwy! - Add missing dependencies, support strict dependency installation (e.g. pnpm)

1.1.0

Minor Changes

1.0.2

Patch Changes

1.0.1

Patch Changes

1.0.0

Major Changes

No breaking changes. This package is now officially stable and compatible with astro@1.0.0!

0.5.2

Patch Changes

0.5.1

Patch Changes

0.5.0

Minor Changes

  • #3914 b48767985 Thanks @ran-dall! - Rollback supported node@16 version. Minimum versions are now node@14.20.0 or node@16.14.0.

0.4.1

Patch Changes

0.4.0

Minor Changes

  • #3871 1cc5b7890 Thanks @natemoo-re! - Update supported node versions. Minimum versions are now node@14.20.0 or node@16.16.0.

0.3.2

Patch Changes

0.3.1

Patch Changes

0.3.0

Minor Changes

To use preact/compat to render React components, users can now set compat to true when using the Preact integration:

js integrations: [ preact({ compat: true }), ],

0.2.0

Minor Changes

Each slot is be passed as a top-level prop. For example:

```jsx // From .astro

Hello world!

Dash

Default
;

// For .jsx export default function Component({ title, slotWithDash, children }) { return ( <>

{title}
{slotWithDash}
{children}

); } ```

0.1.3

Patch Changes

  • #3455 e9a77d86 Thanks @natemoo-re! - Update client hydration to check for ssr attribute. Requires astro@^1.0.0-beta.36.

0.1.2

Patch Changes

  • #3166 70263cf7 Thanks @natemoo-re! - Fix integration to use updateConfig rather than returning a partial config object

0.1.1

Patch Changes

0.1.0

Minor Changes

0.0.2

Patch Changes

0.0.2-next.1

Patch Changes

  • #2872 098f6f6b Thanks @bholmesdev! - Fix isSelfAccepting errors when using the Preact integration with the Astro dev server

0.0.2-next.0

Patch Changes

  • #2847 3b621f7a Thanks @tony-sull! - Adds keywords to the official integrations to support discoverability on Astro's Integrations site