{"version":3,"sources":["../../../../src/lib/api-keys/api-keys-context.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport {\n  ApiKeysAction,\n  ApiKeysState,\n  useApiKeysState,\n} from \"./api-keys-state.js\";\nimport { ListMetadata } from \"../../api/endpoint.js\";\n\nexport interface ApiKeysContextType {\n  state: ApiKeysState;\n  dispatch: React.Dispatch<ApiKeysAction>;\n}\n\nconst ApiKeysContext = React.createContext<ApiKeysContextType | undefined>(\n  undefined,\n);\nApiKeysContext.displayName = \"ApiKeysContext\";\n\nconst initialState: ApiKeysState = {\n  pagination: null,\n  searchQuery: null,\n  createDialogOpen: false,\n  createdApiKey: null,\n};\n\nexport const ApiKeysContextProvider: React.FC<{\n  children?: React.ReactNode;\n}> = ({ children }) => {\n  const [state, dispatch] = useApiKeysState(initialState);\n\n  const context = React.useMemo<ApiKeysContextType>(\n    () => ({\n      state,\n      dispatch,\n    }),\n    [state, dispatch],\n  );\n\n  return (\n    <ApiKeysContext.Provider value={context}>\n      {children}\n    </ApiKeysContext.Provider>\n  );\n};\n\nconst NOOP = () => void 0;\nconst EMPTY_PAGINATION: ListMetadata = { before: null, after: null };\n\n/**\n * The context may be provided if it is instantiated in the tree above the user.\n */\nexport function useApiKeysContext(\n  initialContext?: ApiKeysContextType | null,\n): ApiKeysContextType {\n  const context = React.useContext(ApiKeysContext);\n\n  if (context) {\n    return context;\n  }\n\n  if (initialContext) {\n    return initialContext;\n  }\n\n  return {\n    dispatch: NOOP,\n    state: {\n      pagination: EMPTY_PAGINATION,\n      searchQuery: null,\n      createDialogOpen: false,\n      createdApiKey: null,\n    },\n  };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAyCI;AAvCJ,YAAuB;AACvB,4BAIO;AAQP,MAAM,iBAAiB,MAAM;AAAA,EAC3B;AACF;AACA,eAAe,cAAc;AAE7B,MAAM,eAA6B;AAAA,EACjC,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,eAAe;AACjB;AAEO,MAAM,yBAER,CAAC,EAAE,SAAS,MAAM;AACrB,QAAM,CAAC,OAAO,QAAQ,QAAI,uCAAgB,YAAY;AAEtD,QAAM,UAAU,MAAM;AAAA,IACpB,OAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,IACA,CAAC,OAAO,QAAQ;AAAA,EAClB;AAEA,SACE,4CAAC,eAAe,UAAf,EAAwB,OAAO,SAC7B,UACH;AAEJ;AAEA,MAAM,OAAO,MAAM;AACnB,MAAM,mBAAiC,EAAE,QAAQ,MAAM,OAAO,KAAK;AAK5D,SAAS,kBACd,gBACoB;AACpB,QAAM,UAAU,MAAM,WAAW,cAAc;AAE/C,MAAI,SAAS;AACX,WAAO;AAAA,EACT;AAEA,MAAI,gBAAgB;AAClB,WAAO;AAAA,EACT;AAEA,SAAO;AAAA,IACL,UAAU;AAAA,IACV,OAAO;AAAA,MACL,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,kBAAkB;AAAA,MAClB,eAAe;AAAA,IACjB;AAAA,EACF;AACF;","names":[]}