Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@statx/react

Package Overview
Dependencies
Maintainers
1
Versions
48
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@statx/react - npm Package Compare versions

Comparing version
1.15.1
to
1.15.2
+12
-4
build/index.d.ts

@@ -1,4 +0,12 @@

import type { ReactElement, ReactNode } from 'react';
import type { PublicState } from '@statx/core';
export declare const useStatx: <T extends unknown>(state: PublicState<T>) => T;
export declare const useSXComponent: <T extends unknown>(state: PublicState<T>, f?: ((value: T) => ReactNode) | undefined) => ReactElement;
import type { ReactNode } from 'react';
import type { State, Computed } from '@statx/core';
type Props = Record<string, unknown>;
type ConvertedRecord<T extends Props> = {
[K in keyof T]: State<T[K]>;
};
export declare const statxComponent: <T extends Props, K = ConvertedRecord<T>>(initFn: (state: K) => () => ReactNode, name?: string) => (props: Props) => import("react").CElement<{
fn: () => Computed<unknown>;
}, import("react").Component<{
fn: () => Computed<unknown>;
}, any, any>>;
export {};

@@ -1,27 +0,41 @@

import { Fragment, useMemo, createElement, useEffect, useState } from 'react';
export const useStatx = (state) => {
const [inner, setInner] = useState(state());
useEffect(() => {
return state.subscribe(setInner);
}, []);
return inner;
import { createElement, PureComponent } from 'react';
import { computed, state } from '@statx/core';
class StatxComponent extends PureComponent {
unsub;
componentWillUnmount() {
this.unsub?.();
}
componentDidMount() {
this.unsub = this.props.fn?.().subscribe(() => this.forceUpdate());
}
render() {
return this.props.fn()();
}
}
const setStateProps = (newProps, stateProps) => {
Object.entries(newProps).map((item) => {
if (item[0] in stateProps) {
stateProps[item[0]].set(item[1]);
}
else {
stateProps[item[0]] = state(item[1]);
}
});
};
export const useSXComponent = (state, f) => {
return useMemo(() => {
return createElement(() => {
const res = useStatx(state);
if (!res) {
return null;
}
if (f) {
const mappedResult = f(res);
return createElement(Fragment, {}, mappedResult);
}
if (typeof res === 'object') {
return createElement(Fragment, {}, JSON.stringify(res));
}
return createElement(Fragment, {}, res.toString());
});
}, []);
export const statxComponent = (initFn, name) => {
let computedFn;
let inited = false;
const stateProps = {};
const statxElement = createElement(StatxComponent, {
fn: () => computedFn,
});
return (props) => {
setStateProps(props, stateProps);
if (!inited) {
computedFn = computed(initFn(stateProps), { name: `${name}.render` });
inited = true;
}
return statxElement;
};
};
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAA;AAG3E,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAsB,KAAqB,EAAK,EAAE;IACxE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAI,KAAK,EAAE,CAAC,CAAA;IAE9C,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;IAClC,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,KAAqB,EACrB,CAA2B,EACb,EAAE;IAChB,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,OAAO,aAAa,CAAC,GAAG,EAAE;YACxB,MAAM,GAAG,GAAG,QAAQ,CAAI,KAAK,CAAC,CAAA;YAC9B,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO,IAAI,CAAA;YACb,CAAC;YACD,IAAI,CAAC,EAAE,CAAC;gBACN,MAAM,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;gBAC3B,OAAO,aAAa,CAAC,QAAQ,EAAE,EAAE,EAAE,YAAY,CAAC,CAAA;YAClD,CAAC;YACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5B,OAAO,aAAa,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;YACzD,CAAC;YACD,OAAO,aAAa,CAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;QACpD,CAAC,CAAC,CAAA;IACJ,CAAC,EAAE,EAAE,CAAC,CAAA;AACR,CAAC,CAAA"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,aAAa,EAAE,aAAa,EAAC,MAAM,OAAO,CAAA;AAElD,OAAO,EAAC,QAAQ,EAAE,KAAK,EAAC,MAAM,aAAa,CAAA;AAS3C,MAAM,cAAmE,SAAQ,aAAmB;IAC1F,KAAK,CAAa;IAC1B,oBAAoB;QAClB,IAAI,CAAC,KAAK,EAAE,EAAE,CAAA;IAChB,CAAC;IACD,iBAAiB;QACf,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;IACpE,CAAC;IACD,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAA;IAC1B,CAAC;CACF;AAED,MAAM,aAAa,GAAG,CAAC,QAAe,EAAE,UAAkB,EAAE,EAAE;IAC5D,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACpC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC;YAC1B,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QAClC,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QACtC,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,MAAqC,EACrC,IAAa,EACb,EAAE;IACF,IAAI,UAA6B,CAAA;IACjC,IAAI,MAAM,GAAG,KAAK,CAAA;IAClB,MAAM,UAAU,GAAG,EAAO,CAAA;IAC1B,MAAM,YAAY,GAAG,aAAa,CAAC,cAAqB,EAAE;QACxD,EAAE,EAAE,GAAG,EAAE,CAAC,UAAU;KACrB,CAAC,CAAA;IAEF,OAAO,CAAC,KAAY,EAAE,EAAE;QACtB,aAAa,CAAC,KAAK,EAAE,UAAoB,CAAC,CAAA;QAE1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,EAAC,IAAI,EAAE,GAAG,IAAI,SAAS,EAAC,CAAC,CAAA;YACnE,MAAM,GAAG,IAAI,CAAA;QACf,CAAC;QAED,OAAO,YAAY,CAAA;IACrB,CAAC,CAAA;AACH,CAAC,CAAA"}
{
"name": "@statx/react",
"version": "1.15.1",
"version": "1.15.2",
"private": false,

@@ -53,3 +53,3 @@ "description": "Extry tiny smart statx manager",

"dependencies": {
"@statx/core": "^1.15.1"
"@statx/core": "^1.15.2"
},

@@ -69,3 +69,3 @@ "peerDependencies": {

},
"gitHead": "8032cbbc175aade084789299df965673d922a2bb",
"gitHead": "a29e4c0753050c90c3c8783d37f9ae84191c00db",
"devDependencies": {

@@ -72,0 +72,0 @@ "@types/react-dom": "^18.0.0",