PluginProbe
Presto Player / 3.0.0-beta1
Presto Player v3.0.0-beta1
4.5.0 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.4 4.2.3 4.2.2 4.2.0 4.2.1 trunk 1.10.0 1.10.1 1.10.2 1.11.0 1.12.0 1.13.0 1.14.0 1.14.1 1.5.10 1.5.11 1.5.12 1.5.13 All 126 releases
presto-player / src / admin / analytics / pages / Dashboard.js
Dashboard.js
83 lines 2.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /** @jsx jsx */
2
3 const { __ } = wp.i18n;
4 const { Flex, FlexBlock, FlexItem } = wp.components;
5 const { useState, useEffect } = wp.element;
6
7 import TopUsers from "../components/TopUsers";
8 import TopVideos from "../components/TopVideos";
9 import OverviewPanel from "../components/OverviewPanel";
10 import DatePicker from "../components/DatePicker";
11 import apiFetch from "@wordpress/api-fetch";
12 import { Notice } from "@wordpress/components";
13 import { css, jsx } from "@emotion/core";
14
15 export default function ({ startDate, endDate, setStartDate, setEndDate }) {
16 const [noticeStatus, setNoticeStatus] = useState(false);
17
18 // run this only on mount.
19 useEffect(() => {
20 apiFetch({ path: "/wp/v2/settings" }).then((post) => {
21 if (post?.presto_player_analytics?.enable === false) {
22 setNoticeStatus(true);
23 }
24 });
25 }, []);
26
27 return (
28 <>
29 {/* Component decleared below this code */}
30 {noticeStatus ? <MyNotice /> : ""}
31 <Flex>
32 <FlexBlock>
33 <h1>{__("Analytics", "presto-player")}</h1>
34 </FlexBlock>
35 <FlexItem>
36 <DatePicker
37 startDate={startDate}
38 setStartDate={setStartDate}
39 endDate={endDate}
40 setEndDate={setEndDate}
41 />
42 </FlexItem>
43 </Flex>
44
45 <div className="presto-flow">
46 <div className="presto-dashboard">
47 <div className="presto-dashboard__row">
48 <div className="presto-dashboard__item is-large">
49 <OverviewPanel startDate={startDate} endDate={endDate} />
50 </div>
51 <div className="presto-dashboard__item">
52 <TopUsers startDate={startDate} endDate={endDate} />
53 </div>
54 </div>
55
56 <div className="presto-dashboard__row">
57 <div className="presto-dashboard__item is-large">
58 <TopVideos startDate={startDate} endDate={endDate} />
59 </div>
60 </div>
61 </div>
62 </div>
63 </>
64 );
65 }
66
67 const MyNotice = () => (
68 <Notice
69 css={css`
70 margin: 0 0 1em 0 !important;
71 `}
72 status="warning"
73 isDismissible={false}
74 >
75 <p>
76 {__(
77 "Analytics are currently disabled. To collect analytics, turn them on in your settings page.",
78 "presto-player"
79 )}
80 </p>
81 </Notice>
82 );
83