{"version":3,"sources":["../../../src/lib/generic-error.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Flex, Heading, Text } from \"@radix-ui/themes\";\nimport {\n  ExpiredTokenError,\n  FetchError,\n  IncorrectPermissionsError,\n  NoAuthTokenError,\n} from \"./errors.js\";\nimport { Cross2Icon } from \"@radix-ui/react-icons\";\nimport { useTranslation } from \"./i18n/use-translation.js\";\n\ntype GenericErrorProps = React.ComponentProps<typeof Flex> & {\n  error: unknown;\n};\n\nexport function GenericError({ error, ...domProps }: GenericErrorProps) {\n  const translate = useTranslation();\n  React.useEffect(() => {\n    console.error(error);\n  }, [error]);\n\n  const { heading, message } = getErrorMessage(error, translate);\n  return (\n    <Flex\n      p=\"6\"\n      justify=\"center\"\n      align=\"center\"\n      direction=\"column\"\n      {...domProps}\n    >\n      <Flex\n        align=\"center\"\n        justify=\"center\"\n        width=\"32px\"\n        height=\"32px\"\n        mb=\"2\"\n        style={{\n          borderRadius: \"9999px\",\n          backgroundColor: \"var(--red-a4)\",\n          color: \"var(--red-a11)\",\n        }}\n      >\n        <Cross2Icon width=\"24px\" height=\"24px\" />\n      </Flex>\n\n      <Flex direction=\"column\" gap=\"1\" maxWidth=\"420px\">\n        <Heading size=\"5\" align=\"center\" mb=\"1\" wrap=\"balance\" as=\"h3\">\n          {heading}\n        </Heading>\n        <Text as=\"p\" align=\"center\" wrap=\"balance\" color=\"gray\">\n          {message}\n        </Text>\n      </Flex>\n    </Flex>\n  );\n}\n\nexport function getErrorMessage(\n  error: unknown,\n  translate: ({\n    defaultMessage,\n    description,\n    id,\n  }: {\n    defaultMessage: string;\n    description: string;\n    id: string;\n  }) => string,\n) {\n  if (error instanceof FetchError) {\n    return {\n      heading: translate({\n        defaultMessage: \"Error fetching data\",\n        description: \"Error message heading\",\n        id: \"5QzKdW\",\n      }),\n      message: translate({\n        defaultMessage:\n          \"An error occurred. You may need to configure CORS in the WorkOS Dashboard.\",\n        description: \"Error message details\",\n        id: \"63rRud\",\n      }),\n    };\n  }\n\n  if (error instanceof NoAuthTokenError) {\n    return {\n      heading: translate({\n        defaultMessage: \"Authorization error\",\n        description: \"Error message heading\",\n        id: \"s/dQVI\",\n      }),\n      message: translate({\n        defaultMessage:\n          \"You likely forgot to provide an authorization token to the widget.\",\n        description: \"Error message details\",\n        id: \"d7mvgq\",\n      }),\n    };\n  }\n\n  if (error instanceof ExpiredTokenError) {\n    return {\n      heading: translate({\n        defaultMessage: \"Session expired\",\n        description:\n          \"Error message heading shown when the widget access token has expired\",\n        id: \"O2RRtR\",\n      }),\n      message: translate({\n        defaultMessage: \"Please reload the page to continue.\",\n        description:\n          \"Error message details shown when the widget access token has expired\",\n        id: \"IsBzv7\",\n      }),\n    };\n  }\n\n  if (error instanceof IncorrectPermissionsError) {\n    return {\n      heading: translate({\n        defaultMessage: \"Incorrect permissions\",\n        description: \"Error message heading\",\n        id: \"dFmPj3\",\n      }),\n      message: translate({\n        defaultMessage:\n          \"Check that the correct permissions have been assigned.\",\n        description: \"Error message details\",\n        id: \"hd/Llp\",\n      }),\n    };\n  }\n\n  return {\n    heading: translate({\n      defaultMessage: \"Error fetching data\",\n      description: \"Error message heading\",\n      id: \"5QzKdW\",\n    }),\n    message: translate({\n      defaultMessage:\n        \"An unexpected error occurred. Check your network connection or try refreshing the page.\",\n      description: \"Error message details\",\n      id: \"t+CDVJ\",\n    }),\n  };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA0CQ;AA1CR,YAAuB;AACvB,oBAAoC;AACpC,oBAKO;AACP,yBAA2B;AAC3B,6BAA+B;AAMxB,SAAS,aAAa,EAAE,OAAO,GAAG,SAAS,GAAsB;AACtE,QAAM,gBAAY,uCAAe;AACjC,QAAM,UAAU,MAAM;AACpB,YAAQ,MAAM,KAAK;AAAA,EACrB,GAAG,CAAC,KAAK,CAAC;AAEV,QAAM,EAAE,SAAS,QAAQ,IAAI,gBAAgB,OAAO,SAAS;AAC7D,SACE;AAAA,IAAC;AAAA;AAAA,MACC,GAAE;AAAA,MACF,SAAQ;AAAA,MACR,OAAM;AAAA,MACN,WAAU;AAAA,MACT,GAAG;AAAA,MAEJ;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,OAAM;AAAA,YACN,SAAQ;AAAA,YACR,OAAM;AAAA,YACN,QAAO;AAAA,YACP,IAAG;AAAA,YACH,OAAO;AAAA,cACL,cAAc;AAAA,cACd,iBAAiB;AAAA,cACjB,OAAO;AAAA,YACT;AAAA,YAEA,sDAAC,iCAAW,OAAM,QAAO,QAAO,QAAO;AAAA;AAAA,QACzC;AAAA,QAEA,6CAAC,sBAAK,WAAU,UAAS,KAAI,KAAI,UAAS,SACxC;AAAA,sDAAC,yBAAQ,MAAK,KAAI,OAAM,UAAS,IAAG,KAAI,MAAK,WAAU,IAAG,MACvD,mBACH;AAAA,UACA,4CAAC,sBAAK,IAAG,KAAI,OAAM,UAAS,MAAK,WAAU,OAAM,QAC9C,mBACH;AAAA,WACF;AAAA;AAAA;AAAA,EACF;AAEJ;AAEO,SAAS,gBACd,OACA,WASA;AACA,MAAI,iBAAiB,0BAAY;AAC/B,WAAO;AAAA,MACL,SAAS,UAAU;AAAA,QACjB,gBAAgB;AAAA,QAChB,aAAa;AAAA,QACb,IAAI;AAAA,MACN,CAAC;AAAA,MACD,SAAS,UAAU;AAAA,QACjB,gBACE;AAAA,QACF,aAAa;AAAA,QACb,IAAI;AAAA,MACN,CAAC;AAAA,IACH;AAAA,EACF;AAEA,MAAI,iBAAiB,gCAAkB;AACrC,WAAO;AAAA,MACL,SAAS,UAAU;AAAA,QACjB,gBAAgB;AAAA,QAChB,aAAa;AAAA,QACb,IAAI;AAAA,MACN,CAAC;AAAA,MACD,SAAS,UAAU;AAAA,QACjB,gBACE;AAAA,QACF,aAAa;AAAA,QACb,IAAI;AAAA,MACN,CAAC;AAAA,IACH;AAAA,EACF;AAEA,MAAI,iBAAiB,iCAAmB;AACtC,WAAO;AAAA,MACL,SAAS,UAAU;AAAA,QACjB,gBAAgB;AAAA,QAChB,aACE;AAAA,QACF,IAAI;AAAA,MACN,CAAC;AAAA,MACD,SAAS,UAAU;AAAA,QACjB,gBAAgB;AAAA,QAChB,aACE;AAAA,QACF,IAAI;AAAA,MACN,CAAC;AAAA,IACH;AAAA,EACF;AAEA,MAAI,iBAAiB,yCAA2B;AAC9C,WAAO;AAAA,MACL,SAAS,UAAU;AAAA,QACjB,gBAAgB;AAAA,QAChB,aAAa;AAAA,QACb,IAAI;AAAA,MACN,CAAC;AAAA,MACD,SAAS,UAAU;AAAA,QACjB,gBACE;AAAA,QACF,aAAa;AAAA,QACb,IAAI;AAAA,MACN,CAAC;AAAA,IACH;AAAA,EACF;AAEA,SAAO;AAAA,IACL,SAAS,UAAU;AAAA,MACjB,gBAAgB;AAAA,MAChB,aAAa;AAAA,MACb,IAAI;AAAA,IACN,CAAC;AAAA,IACD,SAAS,UAAU;AAAA,MACjB,gBACE;AAAA,MACF,aAAa;AAAA,MACb,IAAI;AAAA,IACN,CAAC;AAAA,EACH;AACF;","names":[]}