kopia lustrzana https://github.com/bugout-dev/moonstream
rodzic
7507b271ca
commit
ff5e954530
|
@ -8,7 +8,6 @@ import {
|
|||
Text,
|
||||
Spacer,
|
||||
IconButton,
|
||||
Button,
|
||||
} from "@chakra-ui/react";
|
||||
import Scrollable from "../../src/components/Scrollable";
|
||||
import RangeSelector from "../../src/components/RangeSelector";
|
||||
|
@ -17,9 +16,7 @@ import { useRouter, useSubscriptions } from "../../src/core/hooks";
|
|||
import { BiTrash } from "react-icons/bi";
|
||||
import OverlayContext from "../../src/core/providers/OverlayProvider/context";
|
||||
import SubscriptionReport from "../../src/components/SubscriptionReport";
|
||||
import { AiOutlinePlusCircle } from "react-icons/ai";
|
||||
import { v4 } from "uuid";
|
||||
import { DRAWER_TYPES } from "../../src/core/providers/OverlayProvider/constants";
|
||||
|
||||
const HOUR_KEY = "Hourly";
|
||||
const DAY_KEY = "Daily";
|
||||
|
@ -96,7 +93,6 @@ const Analytics = () => {
|
|||
|
||||
const [timeRange, setTimeRange] = useState(timeMap[MINUTE_KEY]);
|
||||
const router = useRouter();
|
||||
const overlay = useContext(OverlayContext);
|
||||
const { dashboardId } = router.params;
|
||||
const { dashboardCache, dashboardLinksCache, deleteDashboard } =
|
||||
useDashboard(dashboardId);
|
||||
|
@ -149,10 +145,6 @@ const Analytics = () => {
|
|||
// }
|
||||
// }, [nodesReady, windowSize]);
|
||||
|
||||
const addReportClicked = () => {
|
||||
console.log("click");
|
||||
};
|
||||
|
||||
if (
|
||||
dashboardCache.isLoading ||
|
||||
dashboardLinksCache.isLoading ||
|
||||
|
@ -193,18 +185,6 @@ const Analytics = () => {
|
|||
setTimeRange(timeMap[e]);
|
||||
}}
|
||||
/>
|
||||
<Button
|
||||
onClick={() =>
|
||||
overlay.toggleDrawer(DRAWER_TYPES.NEW_DASHBOARD_ITEM)
|
||||
}
|
||||
mr={8}
|
||||
colorScheme="blue"
|
||||
variant="solid"
|
||||
size="sm"
|
||||
rightIcon={<AiOutlinePlusCircle />}
|
||||
>
|
||||
Add Report
|
||||
</Button>
|
||||
</Stack>
|
||||
|
||||
<Flex w="100%" direction="row" flexWrap="wrap-reverse" id="container">
|
||||
|
|
|
@ -1,122 +0,0 @@
|
|||
import React, { useContext, useEffect } from "react";
|
||||
import {
|
||||
chakra,
|
||||
FormLabel,
|
||||
Input,
|
||||
Stack,
|
||||
InputGroup,
|
||||
Box,
|
||||
Button,
|
||||
Table,
|
||||
Th,
|
||||
Td,
|
||||
Tr,
|
||||
Thead,
|
||||
Tbody,
|
||||
Center,
|
||||
Checkbox,
|
||||
CloseButton,
|
||||
InputRightAddon,
|
||||
Badge,
|
||||
InputLeftAddon,
|
||||
} from "@chakra-ui/react";
|
||||
import { CheckCircleIcon } from "@chakra-ui/icons";
|
||||
import { useStorage, useSubscriptions } from "../core/hooks";
|
||||
import Downshift from "downshift";
|
||||
import color from "color";
|
||||
import OverlayContext from "../core/providers/OverlayProvider/context";
|
||||
import { MODAL_TYPES } from "../core/providers/OverlayProvider/constants";
|
||||
import UIContext from "../core/providers/UIProvider/context";
|
||||
|
||||
const NewDashboardElement = (props) => {
|
||||
const ui = useContext(UIContext);
|
||||
const overlay = useContext(OverlayContext);
|
||||
const [newDashboardForm, setNewDashboardForm] = useStorage(
|
||||
sessionStorage,
|
||||
"new_dashboard",
|
||||
{
|
||||
name: "",
|
||||
subscriptions: [
|
||||
{
|
||||
label: "",
|
||||
abi: false,
|
||||
subscription_id: null,
|
||||
isMethods: false,
|
||||
isEvents: false,
|
||||
generic: {
|
||||
transactions: {
|
||||
in: false,
|
||||
out: false,
|
||||
},
|
||||
value: {
|
||||
in: false,
|
||||
out: false,
|
||||
balance: false,
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
}
|
||||
);
|
||||
|
||||
const subscriptions = useSubscriptions();
|
||||
|
||||
const [pickerItems, setPickerItems] = React.useState(
|
||||
subscriptions.subscriptionsCache.data?.subscriptions
|
||||
);
|
||||
|
||||
useEffect(() => {
|
||||
newDashboardForm.subscriptions.forEach((element, idx) => {
|
||||
const subscription =
|
||||
subscriptions.subscriptionsCache.data?.subscriptions.find(
|
||||
(subscription_item) =>
|
||||
element.subscription_id === subscription_item.id
|
||||
);
|
||||
|
||||
if (
|
||||
element.subscription_id &&
|
||||
subscription &&
|
||||
newDashboardForm.subscriptions[idx].abi !== subscription?.abi
|
||||
) {
|
||||
const newestDashboardForm = { ...newDashboardForm };
|
||||
newestDashboardForm.subscriptions[idx].abi = subscription.abi;
|
||||
setNewDashboardForm(newestDashboardForm);
|
||||
}
|
||||
});
|
||||
}, [
|
||||
subscriptions.subscriptionsCache.data,
|
||||
newDashboardForm,
|
||||
setNewDashboardForm,
|
||||
]);
|
||||
|
||||
useEffect(() => {
|
||||
if (!subscriptions.subscriptionsCache.isLoading) {
|
||||
const massaged = subscriptions.subscriptionsCache.data?.subscriptions.map(
|
||||
(item) => {
|
||||
return { value: item.address, ...item };
|
||||
}
|
||||
);
|
||||
setPickerItems(massaged);
|
||||
}
|
||||
}, [
|
||||
subscriptions.subscriptionsCache.data,
|
||||
subscriptions.subscriptionsCache.isLoading,
|
||||
]);
|
||||
|
||||
const filterFn = (item, inputValue) =>
|
||||
(item.subscription_type_id === "ethereum_blockchain" ||
|
||||
item.subscription_type_id === "polygon_blockchain") &&
|
||||
(!inputValue ||
|
||||
item.address.toUpperCase().includes(inputValue.toUpperCase()) ||
|
||||
item.label.toUpperCase().includes(inputValue.toUpperCase()));
|
||||
|
||||
return (
|
||||
<>
|
||||
<Stack spacing="24px"></Stack>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
const ChakraNewDashboard = chakra(NewDashboardElement);
|
||||
|
||||
export default ChakraNewDashboard;
|
|
@ -1,25 +0,0 @@
|
|||
import { queryCacheProps } from "./hookCommon";
|
||||
import { useToast } from ".";
|
||||
import { useQuery } from "react-query";
|
||||
import { SubscriptionsService } from "../services";
|
||||
import { useContext } from "react";
|
||||
import UserContext from "../providers/UserProvider/context";
|
||||
|
||||
const useSubscription = ({ id }) => {
|
||||
const toast = useToast();
|
||||
const user = useContext(UserContext);
|
||||
|
||||
const subscriptionLinksCache = useQuery(
|
||||
["dashboardLinks", { id }],
|
||||
SubscriptionsService.getSubscriptionABI,
|
||||
{
|
||||
...queryCacheProps,
|
||||
onError: (error) => {
|
||||
toast(error, "error");
|
||||
},
|
||||
enabled: !!user && !!id,
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
export default useSubscription;
|
|
@ -13,7 +13,6 @@ export const MODAL_TYPES = {
|
|||
export const DRAWER_TYPES = {
|
||||
OFF: 0,
|
||||
NEW_DASHBOARD: 1,
|
||||
NEW_DASHBOARD_ITEM: 2,
|
||||
};
|
||||
|
||||
export const ALERT_TYPES = {
|
||||
|
|
|
@ -36,7 +36,6 @@ import UserContext from "../UserProvider/context";
|
|||
import UIContext from "../UIProvider/context";
|
||||
import useDashboard from "../../hooks/useDashboard";
|
||||
import SignUp from "../../../components/SignUp";
|
||||
import NewDashboardElement from "../../../components/NewDashboardElement";
|
||||
const ForgotPassword = React.lazy(() =>
|
||||
import("../../../components/ForgotPassword")
|
||||
);
|
||||
|
@ -122,39 +121,6 @@ const OverlayProvider = ({ children }) => {
|
|||
window.sessionStorage.removeItem("new_dashboard");
|
||||
};
|
||||
|
||||
const submitNewDashboard = () => {
|
||||
const dashboardState = JSON.parse(sessionStorage.getItem("new_dashboard"));
|
||||
createDashboard.mutate({
|
||||
name: dashboardState.name,
|
||||
subscriptions: dashboardState.subscriptions.map((pickedSubscription) => {
|
||||
const retval = {
|
||||
subscription_id: pickedSubscription.subscription_id,
|
||||
generic: [],
|
||||
all_methods: !!pickedSubscription.isMethods,
|
||||
all_events: !!pickedSubscription.isEvents,
|
||||
};
|
||||
|
||||
pickedSubscription.generic.transactions.in &&
|
||||
retval.generic.push({ name: "transactions_in" });
|
||||
pickedSubscription.generic.transactions.out &&
|
||||
retval.generic.push({ name: "transactions_out" });
|
||||
pickedSubscription.generic.value.in &&
|
||||
retval.generic.push({ name: "value_in" });
|
||||
pickedSubscription.generic.value.out &&
|
||||
retval.generic.push({ name: "value_out" });
|
||||
pickedSubscription.generic.balance &&
|
||||
retval.generic.push({ name: "balance" });
|
||||
retval["methods"] = [];
|
||||
retval["events"] = [];
|
||||
|
||||
return retval;
|
||||
}),
|
||||
});
|
||||
};
|
||||
|
||||
const submitNewDashboardItem = () => {
|
||||
console.log("submit new dashboard item");
|
||||
};
|
||||
useEffect(() => {
|
||||
if (createDashboard.isSuccess) {
|
||||
finishNewDashboard();
|
||||
|
@ -266,7 +232,6 @@ const OverlayProvider = ({ children }) => {
|
|||
<DrawerCloseButton />
|
||||
<DrawerHeader borderBottomWidth="1px">
|
||||
{DRAWER_TYPES.NEW_DASHBOARD && "New dashboard"}
|
||||
{DRAWER_TYPES.NEW_DASHBOARD_ITEM && "New dashboard element"}
|
||||
</DrawerHeader>
|
||||
|
||||
<DrawerBody h="auto">
|
||||
|
@ -275,11 +240,6 @@ const OverlayProvider = ({ children }) => {
|
|||
<NewDashboard firstField={firstField} />
|
||||
</Suspense>
|
||||
)}
|
||||
{DRAWER_TYPES.NEW_DASHBOARD_ITEM && (
|
||||
<Suspense fallback={<Spinner />}>
|
||||
<NewDashboardElement firstField={firstField} />
|
||||
</Suspense>
|
||||
)}
|
||||
</DrawerBody>
|
||||
<DrawerFooter borderTopWidth="1px">
|
||||
<Button
|
||||
|
@ -293,8 +253,37 @@ const OverlayProvider = ({ children }) => {
|
|||
colorScheme="blue"
|
||||
isLoading={createDashboard.isLoading}
|
||||
onClick={() => {
|
||||
DRAWER_TYPES.NEW_DASHBOARD && submitNewDashboard();
|
||||
DRAWER_TYPES.NEW_DASHBOARD_ITEM && submitNewDashboardItem();
|
||||
const dashboardState = JSON.parse(
|
||||
sessionStorage.getItem("new_dashboard")
|
||||
);
|
||||
createDashboard.mutate({
|
||||
name: dashboardState.name,
|
||||
subscriptions: dashboardState.subscriptions.map(
|
||||
(pickedSubscription) => {
|
||||
const retval = {
|
||||
subscription_id: pickedSubscription.subscription_id,
|
||||
generic: [],
|
||||
all_methods: !!pickedSubscription.isMethods,
|
||||
all_events: !!pickedSubscription.isEvents,
|
||||
};
|
||||
|
||||
pickedSubscription.generic.transactions.in &&
|
||||
retval.generic.push({ name: "transactions_in" });
|
||||
pickedSubscription.generic.transactions.out &&
|
||||
retval.generic.push({ name: "transactions_out" });
|
||||
pickedSubscription.generic.value.in &&
|
||||
retval.generic.push({ name: "value_in" });
|
||||
pickedSubscription.generic.value.out &&
|
||||
retval.generic.push({ name: "value_out" });
|
||||
pickedSubscription.generic.balance &&
|
||||
retval.generic.push({ name: "balance" });
|
||||
retval["methods"] = [];
|
||||
retval["events"] = [];
|
||||
|
||||
return retval;
|
||||
}
|
||||
),
|
||||
});
|
||||
}}
|
||||
>
|
||||
Submit
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import { http } from "../utils";
|
||||
// import axios from "axios";
|
||||
|
||||
const API = process.env.NEXT_PUBLIC_MOONSTREAM_API_URL;
|
||||
|
||||
|
@ -67,10 +68,3 @@ export const deleteSubscription = () => (id) => {
|
|||
url: `${API}/subscriptions/${id}`,
|
||||
});
|
||||
};
|
||||
|
||||
export const getSubscriptionABI = () => (id) => {
|
||||
return http({
|
||||
method: "GET",
|
||||
url: `${API}/subscriptions/${id}/abi`,
|
||||
});
|
||||
};
|
||||
|
|
Ładowanie…
Reference in New Issue