Explorar el Código

Migrate `usePersistedState` hook to Typescript (#7739)

* Migrate `usePersistedState` hook to Typescript

* Use React types for setter functions

Co-authored-by: Alf Eaton <alf.eaton@overleaf.com>
GitOrigin-RevId: e9ddf6e2ab45e0b0739c850a89ec7be0f14a7506
Miguel Serrano hace 4 años
padre
commit
ef0e475b04

+ 13 - 10
services/web/frontend/js/shared/hooks/use-persisted-state.js → services/web/frontend/js/shared/hooks/use-persisted-state.ts

@@ -1,15 +1,18 @@
-import { useState, useCallback, useEffect } from 'react'
+import {
+  useState,
+  useCallback,
+  useEffect,
+  SetStateAction,
+  Dispatch,
+} from 'react'
 import localStorage from '../../infrastructure/local-storage'
 
-/**
- * @param {string} key
- * @param {any} [defaultValue]
- * @param {boolean} [listen]
- *
- * @returns {[any, function]}
- */
-function usePersistedState(key, defaultValue, listen = false) {
-  const [value, setValue] = useState(() => {
+function usePersistedState<T>(
+  key: string,
+  defaultValue?: T,
+  listen = false
+): [T, Dispatch<SetStateAction<T>>] {
+  const [value, setValue] = useState<T>(() => {
     return localStorage.getItem(key) ?? defaultValue
   })
 

+ 0 - 0
services/web/test/frontend/shared/hooks/use-persisted-state.test.js → services/web/test/frontend/shared/hooks/use-persisted-state.test.tsx