123456789101112131415161718192021222324252627282930313233343536 |
- import {useContext} from 'react';
- import {Organization} from 'sentry/types';
- import {OrganizationContext} from 'sentry/views/organizationContext';
- interface Options<AllowNull extends boolean = boolean> {
- /**
- * Allows null to be returned when there is no organization in context. This
- * can happen when the user is not part of an organization
- *
- * @default false
- */
- allowNull?: AllowNull;
- }
- // The additional signatures provide proper type hints for when we set
- // `allowNull` to true.
- function useOrganization(opts?: Options<false>): Organization;
- function useOrganization(opts?: Options<true>): Organization | null;
- function useOrganization({allowNull}: Options = {}) {
- const organization = useContext(OrganizationContext);
- if (allowNull) {
- return organization;
- }
- if (!organization) {
- throw new Error('useOrganization called but organization is not set.');
- }
- return organization;
- }
- export default useOrganization;
|