v1.3.0
Minor Changes
-
#13
f4688d5Thanks @flyon! - Loader / errorElement resolution chain,_refreshonlinkedSetComponent, factory overloads,LinkedInfinityLoaderopt-in export.New: factory overloads.
linkedComponentandlinkedSetComponentnow accept three forms:linkedComponent(query, fn); // existing linkedComponent(query, fn, { loader, errorElement }); // new — positional options linkedComponent({ query, component, loader, errorElement }); // new — config object
New: loader resolution. Resolves in order — per-instance
loader={<X/>}prop → factoryoptions.loader→LinkedComponentDefaults.loader→ built-in<svg class="ld-loader"/>. Apps style.ld-loader(default styles ship in@_linked/css'sloader.css) or replace the element viaLinkedComponentDefaults.loader = <MyLoader />.New: error handling. Both wrappers now capture query errors and resolve an
errorElementin the same chain (per-instance prop → factory option → global default → built-in<svg class="ld-error"/>). Pass the sentinel'rethrow'(per-instance or as a global default) to let an external<ErrorBoundary>handle the error instead.New:
_refreshonlinkedSetComponent. Mirrors thelinkedComponentAPI —_refresh()re-runs the query,_refresh(updatedProps)patches local query-result state for optimistic UI.New:
LinkedInfinityLoader. Opt-in branded loader exported from@_linked/react. Tree-shake-safe via the package's newsideEffectsarray form.Tree-shaking.
package.jsonnow declares"sideEffects": ["./lib/cjs/package.js", "./lib/esm/package.js"]so bundlers drop unused named exports (the package-registration module is whitelisted).No breaking changes — all existing
linkedComponent(query, fn)andlinkedSetComponent(query, fn)call sites work unchanged.