Skip to content

Commit b06179c

Browse files
committed
remove frontend changes
1 parent 8fca0c5 commit b06179c

File tree

10 files changed

+148
-354
lines changed

10 files changed

+148
-354
lines changed

site/src/api/api.ts

-13
Original file line numberDiff line numberDiff line change
@@ -2097,19 +2097,6 @@ class ApiMethods {
20972097
return response.data;
20982098
};
20992099

2100-
getInsightsUserStatusCountsOverTime = async (
2101-
offset = Math.trunc(new Date().getTimezoneOffset() / 60),
2102-
): Promise<TypesGen.GetUserStatusCountsOverTimeResponse> => {
2103-
const searchParams = new URLSearchParams({
2104-
offset: offset.toString(),
2105-
});
2106-
const response = await this.axios.get(
2107-
`/api/v2/insights/user-status-counts-over-time?${searchParams}`,
2108-
);
2109-
2110-
return response.data;
2111-
};
2112-
21132100
getHealth = async (force = false) => {
21142101
const params = new URLSearchParams({ force: force.toString() });
21152102
const response = await this.axios.get<TypesGen.HealthcheckReport>(

site/src/api/queries/insights.ts

-7
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,3 @@ export const insightsUserActivity = (params: InsightsParams) => {
2020
queryFn: () => API.getInsightsUserActivity(params),
2121
};
2222
};
23-
24-
export const userStatusCountsOverTime = () => {
25-
return {
26-
queryKey: ["userStatusCountsOverTime"],
27-
queryFn: () => API.getInsightsUserStatusCountsOverTime(),
28-
};
29-
};

site/src/api/queries/users.ts

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import type {
99
UpdateUserProfileRequest,
1010
User,
1111
UsersRequest,
12+
ValidateUserPasswordRequest,
1213
} from "api/typesGenerated";
1314
import {
1415
type MetadataState,

site/src/api/typesGenerated.ts

-16
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

site/src/components/ActiveUserChart/ActiveUserChart.stories.tsx

+8-61
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,14 @@ const meta: Meta<typeof ActiveUserChart> = {
55
title: "components/ActiveUserChart",
66
component: ActiveUserChart,
77
args: {
8-
series: [
9-
{
10-
label: "Daily",
11-
data: [
12-
{ date: "1/1/2024", amount: 5 },
13-
{ date: "1/2/2024", amount: 6 },
14-
{ date: "1/3/2024", amount: 7 },
15-
{ date: "1/4/2024", amount: 8 },
16-
{ date: "1/5/2024", amount: 9 },
17-
{ date: "1/6/2024", amount: 10 },
18-
{ date: "1/7/2024", amount: 11 },
19-
],
20-
},
8+
data: [
9+
{ date: "1/1/2024", amount: 5 },
10+
{ date: "1/2/2024", amount: 6 },
11+
{ date: "1/3/2024", amount: 7 },
12+
{ date: "1/4/2024", amount: 8 },
13+
{ date: "1/5/2024", amount: 9 },
14+
{ date: "1/6/2024", amount: 10 },
15+
{ date: "1/7/2024", amount: 11 },
2116
],
2217
interval: "day",
2318
},
@@ -27,51 +22,3 @@ export default meta;
2722
type Story = StoryObj<typeof ActiveUserChart>;
2823

2924
export const Example: Story = {};
30-
31-
export const MultipleSeries: Story = {
32-
args: {
33-
series: [
34-
{
35-
label: "Active",
36-
data: [
37-
{ date: "1/1/2024", amount: 150 },
38-
{ date: "1/2/2024", amount: 165 },
39-
{ date: "1/3/2024", amount: 180 },
40-
{ date: "1/4/2024", amount: 155 },
41-
{ date: "1/5/2024", amount: 190 },
42-
{ date: "1/6/2024", amount: 200 },
43-
{ date: "1/7/2024", amount: 210 },
44-
],
45-
color: "green",
46-
},
47-
{
48-
label: "Dormant",
49-
data: [
50-
{ date: "1/1/2024", amount: 80 },
51-
{ date: "1/2/2024", amount: 82 },
52-
{ date: "1/3/2024", amount: 85 },
53-
{ date: "1/4/2024", amount: 88 },
54-
{ date: "1/5/2024", amount: 90 },
55-
{ date: "1/6/2024", amount: 92 },
56-
{ date: "1/7/2024", amount: 95 },
57-
],
58-
color: "grey",
59-
},
60-
{
61-
label: "Suspended",
62-
data: [
63-
{ date: "1/1/2024", amount: 20 },
64-
{ date: "1/2/2024", amount: 22 },
65-
{ date: "1/3/2024", amount: 25 },
66-
{ date: "1/4/2024", amount: 23 },
67-
{ date: "1/5/2024", amount: 28 },
68-
{ date: "1/6/2024", amount: 30 },
69-
{ date: "1/7/2024", amount: 32 },
70-
],
71-
color: "red",
72-
},
73-
],
74-
interval: "day",
75-
userLimit: 100,
76-
},
77-
};
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
import "chartjs-adapter-date-fns";
22
import { useTheme } from "@emotion/react";
3-
import LaunchOutlined from "@mui/icons-material/LaunchOutlined";
4-
import Button from "@mui/material/Button";
53
import {
64
CategoryScale,
75
Chart as ChartJS,
@@ -16,7 +14,6 @@ import {
1614
Tooltip,
1715
defaults,
1816
} from "chart.js";
19-
import annotationPlugin from "chartjs-plugin-annotation";
2017
import {
2118
HelpTooltip,
2219
HelpTooltipContent,
@@ -38,51 +35,32 @@ ChartJS.register(
3835
Title,
3936
Tooltip,
4037
Legend,
41-
annotationPlugin,
4238
);
4339

44-
export interface DataSeries {
45-
label?: string;
46-
data: readonly { date: string; amount: number }[];
47-
color?: string; // Optional custom color
48-
}
49-
5040
export interface ActiveUserChartProps {
51-
series: DataSeries[];
52-
userLimit?: number;
41+
data: readonly { date: string; amount: number }[];
5342
interval: "day" | "week";
5443
}
5544

5645
export const ActiveUserChart: FC<ActiveUserChartProps> = ({
57-
series,
58-
userLimit,
46+
data,
5947
interval,
6048
}) => {
6149
const theme = useTheme();
6250

51+
const labels = data.map((val) => dayjs(val.date).format("YYYY-MM-DD"));
52+
const chartData = data.map((val) => val.amount);
53+
6354
defaults.font.family = theme.typography.fontFamily as string;
6455
defaults.color = theme.palette.text.secondary;
6556

6657
const options: ChartOptions<"line"> = {
6758
responsive: true,
6859
animation: false,
69-
interaction: {
70-
mode: "index",
71-
},
7260
plugins: {
73-
legend:
74-
series.length > 1
75-
? {
76-
display: false,
77-
position: "top" as const,
78-
labels: {
79-
usePointStyle: true,
80-
pointStyle: "line",
81-
},
82-
}
83-
: {
84-
display: false,
85-
},
61+
legend: {
62+
display: false,
63+
},
8664
tooltip: {
8765
displayColors: false,
8866
callbacks: {
@@ -92,24 +70,6 @@ export const ActiveUserChart: FC<ActiveUserChartProps> = ({
9270
},
9371
},
9472
},
95-
annotation: {
96-
annotations: [
97-
{
98-
type: "line",
99-
scaleID: "y",
100-
value: userLimit,
101-
borderColor: "white",
102-
borderWidth: 2,
103-
label: {
104-
content: "Active User limit",
105-
color: theme.palette.primary.contrastText,
106-
display: true,
107-
textStrokeWidth: 2,
108-
textStrokeColor: theme.palette.background.paper,
109-
},
110-
},
111-
],
112-
},
11373
},
11474
scales: {
11575
y: {
@@ -118,12 +78,11 @@ export const ActiveUserChart: FC<ActiveUserChartProps> = ({
11878
ticks: {
11979
precision: 0,
12080
},
121-
stacked: true,
12281
},
12382
x: {
12483
grid: { color: theme.palette.divider },
12584
ticks: {
126-
stepSize: series[0].data.length > 10 ? 2 : undefined,
85+
stepSize: data.length > 10 ? 2 : undefined,
12786
},
12887
type: "time",
12988
time: {
@@ -138,16 +97,16 @@ export const ActiveUserChart: FC<ActiveUserChartProps> = ({
13897
<Line
13998
data-chromatic="ignore"
14099
data={{
141-
labels: series[0].data.map((val) =>
142-
dayjs(val.date).format("YYYY-MM-DD"),
143-
),
144-
datasets: series.map((s) => ({
145-
label: s.label,
146-
data: s.data.map((val) => val.amount),
147-
pointBackgroundColor: s.color || theme.roles.active.outline,
148-
pointBorderColor: s.color || theme.roles.active.outline,
149-
borderColor: s.color || theme.roles.active.outline,
150-
})),
100+
labels: labels,
101+
datasets: [
102+
{
103+
label: `${interval === "day" ? "Daily" : "Weekly"} Active Users`,
104+
data: chartData,
105+
pointBackgroundColor: theme.roles.active.outline,
106+
pointBorderColor: theme.roles.active.outline,
107+
borderColor: theme.roles.active.outline,
108+
},
109+
],
151110
}}
152111
options={options}
153112
/>
@@ -161,13 +120,11 @@ type ActiveUsersTitleProps = {
161120
export const ActiveUsersTitle: FC<ActiveUsersTitleProps> = ({ interval }) => {
162121
return (
163122
<div css={{ display: "flex", alignItems: "center", gap: 8 }}>
164-
{interval === "day" ? "Daily" : "Weekly"} User Activity
123+
{interval === "day" ? "Daily" : "Weekly"} Active Users
165124
<HelpTooltip>
166125
<HelpTooltipTrigger size="small" />
167126
<HelpTooltipContent>
168-
<HelpTooltipTitle>
169-
How do we calculate user activity?
170-
</HelpTooltipTitle>
127+
<HelpTooltipTitle>How do we calculate active users?</HelpTooltipTitle>
171128
<HelpTooltipText>
172129
When a connection is initiated to a user&apos;s workspace they are
173130
considered an active user. e.g. apps, web terminal, SSH. This is for
@@ -179,39 +136,3 @@ export const ActiveUsersTitle: FC<ActiveUsersTitleProps> = ({ interval }) => {
179136
</div>
180137
);
181138
};
182-
183-
export type UserStatusTitleProps = {
184-
interval: "day" | "week";
185-
};
186-
187-
export const UserStatusTitle: FC<UserStatusTitleProps> = ({ interval }) => {
188-
return (
189-
<div css={{ display: "flex", alignItems: "center", gap: 8 }}>
190-
{interval === "day" ? "Daily" : "Weekly"} User Status
191-
<HelpTooltip>
192-
<HelpTooltipTrigger size="small" />
193-
<HelpTooltipContent>
194-
<HelpTooltipTitle>What are user statuses?</HelpTooltipTitle>
195-
<HelpTooltipText
196-
css={{ display: "flex", gap: 8, flexDirection: "column" }}
197-
>
198-
<span>
199-
Active users count towards your license consumption. Dormant or
200-
suspended users do not. Any user who has logged into the coder
201-
platform within the last 90 days is considered active.
202-
</span>
203-
<Button
204-
component="a"
205-
startIcon={<LaunchOutlined />}
206-
href="https://coder.com/docs/admin/users#user-status"
207-
target="_blank"
208-
rel="noreferrer"
209-
>
210-
Read the docs
211-
</Button>
212-
</HelpTooltipText>
213-
</HelpTooltipContent>
214-
</HelpTooltip>
215-
</div>
216-
);
217-
};

site/src/pages/DeploymentSettingsPage/GeneralSettingsPage/GeneralSettingsPage.tsx

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { deploymentDAUs } from "api/queries/deployment";
2+
import { entitlements } from "api/queries/entitlements";
23
import { availableExperiments, experiments } from "api/queries/experiments";
3-
import { userStatusCountsOverTime } from "api/queries/insights";
44
import { useEmbeddedMetadata } from "hooks/useEmbeddedMetadata";
55
import { useDeploymentSettings } from "modules/management/DeploymentSettingsProvider";
66
import type { FC } from "react";
@@ -15,8 +15,9 @@ const GeneralSettingsPage: FC = () => {
1515
const safeExperimentsQuery = useQuery(availableExperiments());
1616

1717
const { metadata } = useEmbeddedMetadata();
18+
const entitlementsQuery = useQuery(entitlements(metadata.entitlements));
1819
const enabledExperimentsQuery = useQuery(experiments(metadata.experiments));
19-
const userStatusCountsOverTimeQuery = useQuery(userStatusCountsOverTime());
20+
2021
const safeExperiments = safeExperimentsQuery.data?.safe ?? [];
2122
const invalidExperiments =
2223
enabledExperimentsQuery.data?.filter((exp) => {
@@ -32,9 +33,9 @@ const GeneralSettingsPage: FC = () => {
3233
deploymentOptions={deploymentConfig.options}
3334
deploymentDAUs={deploymentDAUsQuery.data}
3435
deploymentDAUsError={deploymentDAUsQuery.error}
36+
entitlements={entitlementsQuery.data}
3537
invalidExperiments={invalidExperiments}
3638
safeExperiments={safeExperiments}
37-
userStatusCountsOverTime={userStatusCountsOverTimeQuery.data}
3839
/>
3940
</>
4041
);

0 commit comments

Comments
 (0)