{"version":3,"sources":["../../src/organization-switcher.client.tsx"],"sourcesContent":["\"use client\";\n\nimport { ApiProvider, AuthToken, useApiReady } from \"./api/api-provider.js\";\nimport { OrganizationInfo, useOrganizations } from \"./api/endpoint.js\";\nimport * as React from \"react\";\nimport { ErrorBoundary } from \"./lib/error-boundary.js\";\nimport {\n  OrganizationSwitcherError,\n  OrganizationSwitcherLoading,\n  OrganizationSwitcher as OrganizationSwitcherPresentational,\n} from \"./lib/organization-switcher.js\";\nimport type {\n  OrganizationSwitcherErrorProps,\n  OrganizationSwitcherLoadingProps,\n  OrganizationSwitcherPassthroughProps,\n} from \"./lib/organization-switcher.js\";\nimport { useWorkOsApiUrl } from \"./lib/widgets-context.js\";\nimport { keepPreviousData } from \"@tanstack/react-query\";\n\ninterface OrganizationSwitcherProps extends OrganizationSwitcherPassthroughProps {\n  authToken: AuthToken;\n}\n\nconst OrganizationSwitcher: React.FC<OrganizationSwitcherProps> = ({\n  authToken,\n  organizationLabel,\n  switchToOrganization,\n  truncateBehavior,\n  variant,\n  ...domProps\n}) => {\n  const baseUrl = useWorkOsApiUrl();\n\n  return (\n    <ErrorBoundary\n      fallbackRender={({ error }) => (\n        <OrganizationSwitcherError\n          error={error}\n          variant={variant}\n          {...domProps}\n        />\n      )}\n    >\n      <ApiProvider\n        widgetType=\"organization-switcher\"\n        authToken={authToken}\n        baseUrl={baseUrl}\n      >\n        <OrganizationSwitcherImpl\n          switchToOrganization={switchToOrganization}\n          organizationLabel={organizationLabel}\n          truncateBehavior={truncateBehavior}\n          variant={variant}\n          {...domProps}\n        />\n      </ApiProvider>\n    </ErrorBoundary>\n  );\n};\n\n// Constant reference to avoid unnecessary prop changes\nconst emptyOrganizations: OrganizationInfo[] = [];\n\nconst OrganizationSwitcherImpl = ({\n  variant,\n  switchToOrganization,\n  organizationLabel,\n  truncateBehavior,\n  children,\n  ...domProps\n}: OrganizationSwitcherPassthroughProps) => {\n  const isApiReady = useApiReady();\n  const organizationsQuery = useOrganizations({\n    query: {\n      placeholderData: keepPreviousData,\n    },\n  });\n\n  const organizations = organizationsQuery.data?.data ?? emptyOrganizations;\n\n  if (organizationsQuery.isLoading || !isApiReady) {\n    return <OrganizationSwitcherLoading variant={variant} {...domProps} />;\n  }\n\n  if (organizationsQuery.isError) {\n    return (\n      <OrganizationSwitcherError\n        error={organizationsQuery.error}\n        variant={variant}\n        {...domProps}\n      />\n    );\n  }\n\n  return (\n    <ErrorBoundary\n      fallbackRender={({ error }) => (\n        <OrganizationSwitcherError\n          error={error}\n          variant={variant}\n          {...domProps}\n        />\n      )}\n    >\n      <OrganizationSwitcherPresentational\n        organizations={organizations}\n        switchToOrganization={switchToOrganization}\n        variant={variant}\n        organizationLabel={organizationLabel}\n        truncateBehavior={truncateBehavior}\n        {...domProps}\n      >\n        {children}\n      </OrganizationSwitcherPresentational>\n    </ErrorBoundary>\n  );\n};\n\nexport type {\n  OrganizationSwitcherProps,\n  OrganizationSwitcherLoadingProps,\n  OrganizationSwitcherErrorProps,\n};\nexport {\n  OrganizationSwitcher,\n  OrganizationSwitcherLoading,\n  OrganizationSwitcherError,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoCQ;AAlCR,0BAAoD;AACpD,sBAAmD;AAEnD,4BAA8B;AAC9B,mCAIO;AAMP,6BAAgC;AAChC,yBAAiC;AAMjC,MAAM,uBAA4D,CAAC;AAAA,EACjE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,cAAU,wCAAgB;AAEhC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,gBAAgB,CAAC,EAAE,MAAM,MACvB;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACC,GAAG;AAAA;AAAA,MACN;AAAA,MAGF;AAAA,QAAC;AAAA;AAAA,UACC,YAAW;AAAA,UACX;AAAA,UACA;AAAA,UAEA;AAAA,YAAC;AAAA;AAAA,cACC;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACC,GAAG;AAAA;AAAA,UACN;AAAA;AAAA,MACF;AAAA;AAAA,EACF;AAEJ;AAGA,MAAM,qBAAyC,CAAC;AAEhD,MAAM,2BAA2B,CAAC;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAA4C;AAC1C,QAAM,iBAAa,iCAAY;AAC/B,QAAM,yBAAqB,kCAAiB;AAAA,IAC1C,OAAO;AAAA,MACL,iBAAiB;AAAA,IACnB;AAAA,EACF,CAAC;AAED,QAAM,gBAAgB,mBAAmB,MAAM,QAAQ;AAEvD,MAAI,mBAAmB,aAAa,CAAC,YAAY;AAC/C,WAAO,4CAAC,4DAA4B,SAAmB,GAAG,UAAU;AAAA,EACtE;AAEA,MAAI,mBAAmB,SAAS;AAC9B,WACE;AAAA,MAAC;AAAA;AAAA,QACC,OAAO,mBAAmB;AAAA,QAC1B;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,gBAAgB,CAAC,EAAE,MAAM,MACvB;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACC,GAAG;AAAA;AAAA,MACN;AAAA,MAGF;AAAA,QAAC,6BAAAA;AAAA,QAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACC,GAAG;AAAA,UAEH;AAAA;AAAA,MACH;AAAA;AAAA,EACF;AAEJ;","names":["OrganizationSwitcherPresentational"]}