mirror of
https://github.com/stefanpejcic/openpanel
synced 2025-06-26 18:28:26 +00:00
fork refine
This commit is contained in:
1
packages/react-table/src/utils/index.ts
Normal file
1
packages/react-table/src/utils/index.ts
Normal file
@@ -0,0 +1 @@
|
||||
export * from "./useIsFirstRender";
|
||||
@@ -0,0 +1,29 @@
|
||||
import { renderHook } from "@testing-library/react";
|
||||
|
||||
import { useIsFirstRender } from ".";
|
||||
|
||||
describe("useFirstRender hook", () => {
|
||||
it("should return true on first render", () => {
|
||||
const { result } = renderHook(() => useIsFirstRender());
|
||||
|
||||
expect(result.current).toBe(true);
|
||||
});
|
||||
|
||||
it("should return false on second render", () => {
|
||||
const { result, rerender } = renderHook(() => useIsFirstRender());
|
||||
|
||||
rerender();
|
||||
|
||||
expect(result.current).toBe(false);
|
||||
});
|
||||
|
||||
it("should return false on multiple renders", () => {
|
||||
const { result, rerender } = renderHook(() => useIsFirstRender());
|
||||
|
||||
rerender();
|
||||
rerender();
|
||||
rerender();
|
||||
|
||||
expect(result.current).toBe(false);
|
||||
});
|
||||
});
|
||||
11
packages/react-table/src/utils/useIsFirstRender/index.ts
Normal file
11
packages/react-table/src/utils/useIsFirstRender/index.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
import { useEffect, useRef } from "react";
|
||||
|
||||
export const useIsFirstRender = () => {
|
||||
const firstRender = useRef(true);
|
||||
|
||||
useEffect(() => {
|
||||
firstRender.current = false;
|
||||
}, []);
|
||||
|
||||
return firstRender.current;
|
||||
};
|
||||
Reference in New Issue
Block a user