Initial public release
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
import React from 'react';
|
||||
import type { RuntimeAPISelector, RuntimeAPIs } from '@/lib/api/types';
|
||||
import { RuntimeAPIContext } from '@/contexts/runtimeAPIContext';
|
||||
|
||||
export const useRuntimeAPIs = (): RuntimeAPIs => {
|
||||
const apis = React.useContext(RuntimeAPIContext);
|
||||
if (!apis) {
|
||||
throw new Error('Runtime APIs are not available. Did you forget to wrap the app in <RuntimeAPIProvider>?');
|
||||
}
|
||||
return apis;
|
||||
};
|
||||
|
||||
export const useRuntimeAPI = <TValue,>(selector: RuntimeAPISelector<TValue>): TValue => {
|
||||
const apis = useRuntimeAPIs();
|
||||
return selector(apis);
|
||||
};
|
||||
|
||||
export const useIsDesktopRuntime = (): boolean => useRuntimeAPI((api) => api.runtime.isDesktop);
|
||||
Reference in New Issue
Block a user