Skip to content

Commit 287581d

Browse files
author
Laurie T. Malau
committed
[usage] More useful notification
1 parent 5cf2cb8 commit 287581d

File tree

2 files changed

+36
-6
lines changed

2 files changed

+36
-6
lines changed

components/dashboard/src/AppNotifications.tsx

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
import { useEffect, useState } from "react";
88
import Alert from "./components/Alert";
9-
import { getGitpodService } from "./service/service";
9+
import { getGitpodService, gitpodHostUrl } from "./service/service";
1010

1111
const KEY_APP_NOTIFICATIONS = "gitpod-app-notifications";
1212

@@ -36,6 +36,7 @@ export function AppNotifications() {
3636
};
3737

3838
const topNotification = notifications[0];
39+
3940
if (topNotification === undefined) {
4041
return null;
4142
}
@@ -54,7 +55,18 @@ export function AppNotifications() {
5455
showIcon={true}
5556
className="flex rounded mb-2 w-full"
5657
>
57-
<span>{topNotification}</span>
58+
<span>{topNotification}</span> Manage
59+
<a
60+
className="gp-link hover:text-gray-600"
61+
href={
62+
notifications.length > 1
63+
? `${gitpodHostUrl}t/${notifications[notifications.length - 1]}/billing`
64+
: `${gitpodHostUrl}billing`
65+
}
66+
>
67+
{" "}
68+
billing.
69+
</a>
5870
</Alert>
5971
</div>
6072
);

components/server/ee/src/workspace/gitpod-server-impl.ts

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2254,10 +2254,28 @@ export class GitpodServerEEImpl extends GitpodServerImpl {
22542254
const billingMode = await this.billingModes.getBillingModeForUser(user, new Date());
22552255
if (billingMode.mode === "usage-based") {
22562256
const limit = await this.billingService.checkUsageLimitReached(user);
2257-
if (limit.reached) {
2258-
result.unshift("The usage limit is reached.");
2259-
} else if (limit.almostReached) {
2260-
result.unshift("The usage limit is almost reached.");
2257+
let teamOrUser;
2258+
switch (limit.attributionId.kind) {
2259+
case "user": {
2260+
if (limit.reached) {
2261+
result.unshift(`You have reached your usage limit.`);
2262+
} else if (limit.almostReached) {
2263+
result.unshift(`You have almost reached your usage limit.`);
2264+
}
2265+
break;
2266+
}
2267+
case "team": {
2268+
teamOrUser = await this.teamDB.findTeamById(limit.attributionId.teamId);
2269+
if (teamOrUser) {
2270+
result.push(teamOrUser?.slug);
2271+
if (limit.reached) {
2272+
result.unshift(`Your team ${teamOrUser?.name} has reached its usage limit.`);
2273+
} else if (limit.almostReached) {
2274+
result.unshift(`Your team ${teamOrUser?.name} has almost reached its usage limit.`);
2275+
}
2276+
}
2277+
break;
2278+
}
22612279
}
22622280
}
22632281
} catch (error) {

0 commit comments

Comments
 (0)