UNPKG

astro-integration-pocketbase

Version:

An Astro integration to support developers working with astro-loader-pocketbase.

46 lines (40 loc) 1.27 kB
import type { BaseIntegrationHooks } from "astro"; /** * Listen for the refresh event of the toolbar. * When the event is triggered in the toolbar, refresh the content loaded by the PocketBase loader. */ export function handleRefreshCollections({ toolbar, refreshContent, logger }: Parameters<BaseIntegrationHooks["astro:server:setup"]>[0]): void { if (!refreshContent) { return; } logger.info("Setting up refresh listener for PocketBase integration"); // Listen for the refresh event of the toolbar toolbar.on( "astro-integration-pocketbase:refresh", async ({ force }: { force: boolean }) => { // Send a loading state to the toolbar toolbar.send("astro-integration-pocketbase:refresh", { loading: true }); // Refresh content loaded by the PocketBase loader logger.info( `Refreshing ${force ? "all " : ""}content loaded by PocketBase loader` ); await refreshContent({ loaders: ["pocketbase-loader"], context: { source: "astro-integration-pocketbase", force: force } }); // Reset the loading state in the toolbar toolbar.send("astro-integration-pocketbase:refresh", { loading: false }); } ); }