@jrichman/ink 7.0.0-beta.3 → 7.0.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,5 @@
1
1
  import React, { type ReactNode, type DependencyList } from 'react';
2
+ import { type DOMElement } from '../dom.js';
2
3
  import { type Styles } from '../styles.js';
3
4
  export type Props = {
4
5
  readonly children: () => ReactNode;
@@ -10,6 +11,11 @@ export type Props = {
10
11
  * If omitted, the content will re-render whenever the `children` function reference changes.
11
12
  */
12
13
  readonly deps?: DependencyList;
14
+ /**
15
+ * Callback fired after the static content has been rendered and cached.
16
+ * Useful for measuring the element's size after rendering.
17
+ */
18
+ readonly onRender?: (node: DOMElement) => void;
13
19
  };
14
20
  /**
15
21
  * `<StaticRender>` is the modern, more powerful replacement for the legacy `<Static>` component.
@@ -42,4 +48,4 @@ export type Props = {
42
48
  * @param props.width Required. The width of the static block. Ink needs this to pre-calculate
43
49
  * the layout having it be dependent on the rest of the app's layout.
44
50
  */
45
- export default function StaticRender({ children, width, style, deps }: Props): React.JSX.Element;
51
+ export default function StaticRender({ children, width, style, deps, onRender, }: Props): React.JSX.Element;
@@ -45,7 +45,7 @@ const areDepsEqual = (prevDeps, nextDeps) => {
45
45
  * @param props.width Required. The width of the static block. Ink needs this to pre-calculate
46
46
  * the layout having it be dependent on the rest of the app's layout.
47
47
  */
48
- export default function StaticRender({ children, width, style, deps }) {
48
+ export default function StaticRender({ children, width, style, deps, onRender, }) {
49
49
  const ref = useRef(null);
50
50
  const [renderedVersion, setRenderedVersion] = useState(0);
51
51
  const prevChildren = useRef(children);
@@ -83,6 +83,9 @@ export default function StaticRender({ children, width, style, deps }) {
83
83
  setRenderedVersion(currentVersion => currentVersion === nextRenderedVersion
84
84
  ? currentVersion
85
85
  : nextRenderedVersion);
86
+ if (onRender && ref.current) {
87
+ onRender(ref.current);
88
+ }
86
89
  } }, shouldRender ? children() : null));
87
90
  }
88
91
  //# sourceMappingURL=StaticRender.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StaticRender.js","sourceRoot":"","sources":["../../src/components/StaticRender.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StaticRender.js","sourceRoot":"","sources":["../../src/components/StaticRender.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jrichman/ink",
3
- "version": "7.0.0-beta.3",
3
+ "version": "7.0.1-beta.0",
4
4
  "description": "React for CLI",
5
5
  "license": "MIT",
6
6
  "repository": "jacob314/ink",