{"version":3,"file":"useResponseStatus.cjs","sources":["../../src/hooks/useResponseStatus.ts"],"sourcesContent":["import { type ReactNode, useMemo } from 'react'\n\nexport type ResponseStatusWithoutProcessing = {\n  status: 'success' | 'error'\n  text: ReactNode\n}\n\nexport type ResponseStatus =\n  | ResponseStatusWithoutProcessing\n  | {\n      status: 'processing'\n    }\n\nexport const useResponseStatus = (responseStatus: ResponseStatus | undefined) => {\n  const calculated = useMemo(() => {\n    if (!responseStatus) {\n      return {\n        isProcessing: false,\n        status: undefined,\n        message: '',\n      }\n    }\n\n    if (responseStatus.status === 'processing') {\n      return {\n        isProcessing: true,\n        status: undefined,\n        message: '',\n      }\n    }\n\n    return {\n      isProcessing: false,\n      // HINT: statusがprocessingではない === success or errorであることが確定する\n      // success or error の場合、text属性も必ず存在する\n      status: responseStatus.status,\n      message: responseStatus.text,\n    }\n  }, [responseStatus])\n\n  return calculated\n}\n"],"names":["useMemo"],"mappings":";;;;AAaO,MAAM,iBAAiB,GAAG,CAAC,cAA0C,KAAI;AAC9E,IAAA,MAAM,UAAU,GAAGA,aAAO,CAAC,MAAK;QAC9B,IAAI,CAAC,cAAc,EAAE;YACnB,OAAO;AACL,gBAAA,YAAY,EAAE,KAAK;AACnB,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,OAAO,EAAE,EAAE;aACZ;QACH;AAEA,QAAA,IAAI,cAAc,CAAC,MAAM,KAAK,YAAY,EAAE;YAC1C,OAAO;AACL,gBAAA,YAAY,EAAE,IAAI;AAClB,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,OAAO,EAAE,EAAE;aACZ;QACH;QAEA,OAAO;AACL,YAAA,YAAY,EAAE,KAAK;;;YAGnB,MAAM,EAAE,cAAc,CAAC,MAAM;YAC7B,OAAO,EAAE,cAAc,CAAC,IAAI;SAC7B;AACH,IAAA,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;AAEpB,IAAA,OAAO,UAAU;AACnB;;;;"}