added some more device actions including interactions stuff
This commit is contained in:
parent
e4cc9b3554
commit
59d9bf2e6b
10 changed files with 381 additions and 34 deletions
|
|
@ -24,7 +24,7 @@ export {
|
|||
// useMeasurementsWebsocket,
|
||||
// useMetricAPI,
|
||||
usePermissionAPI,
|
||||
// usePreferenceAPI,
|
||||
usePreferenceAPI,
|
||||
useSiteAPI, //TODO: update api with resolve, reject
|
||||
useTagAPI,
|
||||
useTeamAPI,
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ import HomeMarkerProvider, {useHomeMarkerAPI} from "./homeMarkerAPI";
|
|||
import HarvestPlanProvider, {useHarvestPlanAPI} from "./harvestPlanAPI";
|
||||
import TerminalProvider, {useTerminalAPI} from "./terminalAPI"
|
||||
import SiteProvider, {useSiteAPI} from "./siteAPI";
|
||||
import PreferenceProvider, {usePreferenceAPI} from "./preferenceAPI";
|
||||
// import NoteProvider from "providers/noteAPI";
|
||||
|
||||
export const pondURL = (partial: string, demo: boolean = false): string => {
|
||||
|
|
@ -68,7 +69,9 @@ export default function PondProvider(props: PropsWithChildren<any>) {
|
|||
<HarvestPlanProvider>
|
||||
<TerminalProvider>
|
||||
<SiteProvider>
|
||||
{children}
|
||||
<PreferenceProvider>
|
||||
{children}
|
||||
</PreferenceProvider>
|
||||
</SiteProvider>
|
||||
</TerminalProvider>
|
||||
</HarvestPlanProvider>
|
||||
|
|
@ -123,5 +126,6 @@ export {
|
|||
useHomeMarkerAPI,
|
||||
useHarvestPlanAPI,
|
||||
useTerminalAPI,
|
||||
useSiteAPI
|
||||
useSiteAPI,
|
||||
usePreferenceAPI
|
||||
};
|
||||
|
|
|
|||
49
src/providers/pond/preferenceAPI.tsx
Normal file
49
src/providers/pond/preferenceAPI.tsx
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
import { useHTTP } from "hooks";
|
||||
import { pond } from "protobuf-ts/pond";
|
||||
import { createContext, PropsWithChildren, useContext } from "react";
|
||||
import { pondURL } from "./pond";
|
||||
|
||||
export interface IPreferenceAPIContext {
|
||||
getPreferences: (kind: string, keys: string[]) => Promise<pond.ModelPreferences[]>;
|
||||
}
|
||||
|
||||
export const PreferenceAPIContext = createContext<IPreferenceAPIContext>(
|
||||
{} as IPreferenceAPIContext
|
||||
);
|
||||
|
||||
interface Props {}
|
||||
|
||||
export default function PreferenceProvider(props: PropsWithChildren<Props>) {
|
||||
const { children } = props;
|
||||
const { get } = useHTTP();
|
||||
|
||||
const getPreferences = (kind: string, keys: string[]): Promise<pond.ModelPreferences[]> => {
|
||||
if (keys.length <= 0) {
|
||||
return Promise.resolve([]);
|
||||
}
|
||||
return new Promise((resolve, reject) => {
|
||||
get(pondURL("/preferences/?kind=" + kind + "&keys=" + keys.join(",")))
|
||||
.then((res: any) => {
|
||||
let prefs: pond.ModelPreferences[] = [];
|
||||
if (res && res.data && res.data.preferences) {
|
||||
res.data.preferences.forEach((raw: any) => {
|
||||
prefs.push(pond.ModelPreferences.create(raw));
|
||||
});
|
||||
}
|
||||
resolve(prefs);
|
||||
})
|
||||
.catch((err: any) => reject(err));
|
||||
});
|
||||
};
|
||||
|
||||
return (
|
||||
<PreferenceAPIContext.Provider
|
||||
value={{
|
||||
getPreferences
|
||||
}}>
|
||||
{children}
|
||||
</PreferenceAPIContext.Provider>
|
||||
);
|
||||
}
|
||||
|
||||
export const usePreferenceAPI = () => useContext(PreferenceAPIContext);
|
||||
Loading…
Add table
Add a link
Reference in a new issue