Use forms with or without client-side JavaScript--no code duplication required!
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 

27 linhas
588 B

  1. import * as React from 'react';
  2. import { NextApiResponse } from '../../common';
  3. export const useResponse = (res: NextApiResponse) => {
  4. const [response, setResponse] = React.useState<Response | undefined>(
  5. res.body ? new Response(res.body as unknown as BodyInit) : undefined,
  6. );
  7. const invalidate = React.useCallback(() => {
  8. setResponse(undefined);
  9. }, []);
  10. const refresh = React.useCallback((newResponse: Response) => {
  11. setResponse(newResponse);
  12. }, []);
  13. return React.useMemo(() => ({
  14. response,
  15. refresh,
  16. invalidate,
  17. }), [
  18. response,
  19. refresh,
  20. invalidate,
  21. ]);
  22. };