1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-01-06 00:07:44 +01:00
Commit Graph

79 Commits

Author SHA1 Message Date
Jaanus Sellin
21c44a4d42
fix: dashboard onboarding flow correct conditions (#8676)
Previously it never went to else clause. Because it was always
onboardingStarted.
2024-11-06 15:21:42 +02:00
Mateusz Kwasniewski
c1dcbde8d9
fix: welcome message with no name (#8588) 2024-10-30 10:11:10 +01:00
Mateusz Kwasniewski
a8d608792d
feat: track personal dashboard seen (#8539) 2024-10-25 09:29:14 +02:00
Mateusz Kwasniewski
69fcb572ef
fix: break words first, break all second (#8495) 2024-10-21 15:10:20 +02:00
Thomas Heartman
a8206f5118
fix: handle loading states for project details for a single project (#8492)
This PR updates the use of references on the project details page to
handle the loading state for a single project.

Now, if a project is loading, it'll show skeleton loaders for the
relevant boxes:


![image](https://github.com/user-attachments/assets/a156cc88-e4bf-421a-8afe-2b46e26d5544)

I've also updated the state type we use for this to be more accurate. Shamelessly
stolen from Elm.

```ts
type RemoteData<T> = 
  | { state: 'error', error: Error } 
  | { state: 'loading' } 
  | { state: 'success', data: T } 
```

After refactoring: 

![image](https://github.com/user-attachments/assets/03d655de-1ab8-4289-9f0c-d158ede8e116)
2024-10-21 14:27:43 +02:00
Mateusz Kwasniewski
9fecc02462
feat: personal dashboard scrollbars and spacing (#8493) 2024-10-21 13:14:51 +02:00
Mateusz Kwasniewski
9b3529d7cb
fix: missing page titles (#8477) 2024-10-18 13:12:58 +02:00
Thomas Heartman
6b56f8ff89
chore: add descriptions to accordion headers (#8452)
This commits adds descriptions to the accordion headers in the
personal dashboard.


![image](https://github.com/user-attachments/assets/d7b7aeff-3a69-45f7-ab42-23228a49132b)
2024-10-15 13:14:18 +00:00
Thomas Heartman
abef5deaef
chore: remove all deprecated imports of act (#8398)
don't use `act` from `react-dom`. Instead, use act from `react`
directly, as advised by the deprecation notice.

This PR fixes all of the deprecated import warnings, updates some
testing libraries we use (and tests), and fixes one or two other
warnings.
2024-10-15 13:53:26 +02:00
Thomas Heartman
e4cfb29adc
refactor: front end code pt II (#8444)
This PR continues the refactoring of the front end code for dashboards. 

The main points are:
- Extracts the `ActionBox` component that we used in a lot of places.
There were some minor differences between the various incarnations, so
this also better aligns them.
- Extract other components (`AskOwnerToAddYouToTheirProject`,
`YourAdmins`)
- Move the `NeutralCircleContainer` into `SharedComponents`
- Delete the separate no content grid (this is now handled in projects
instead)
- extract my projects grid contents into a single function so that it's
easier to understand what content you get for what states

Here's all the states side by side:

![image](https://github.com/user-attachments/assets/c5abc406-7374-41e4-8ff6-d48fe61cd7c8)
2024-10-15 09:14:24 +00:00
Thomas Heartman
9d49070cee
refactor: refactor personal dashboard front end code pt1 (#8440)
This is the first step in refactoring the front end code for personal
dashboards.

At this point:
- extract `useDashboardState` to its own file
- extract my flags to its own file
- Rename `Grid.tsx` to `SharedComponents.tsx` as it contains more than
just the grid.
2024-10-14 13:51:23 +02:00
Thomas Heartman
a3dd51734e
fix: handle cases where the flag name causes API errors (or other errors occur) (#8439)
This commit fixes a bug where the frontend would crash if the flag
name was invalid (such as `..`).


![image](https://github.com/user-attachments/assets/6f41f0d3-4d5f-433d-ad53-899d22b02d89)
2024-10-14 11:48:22 +02:00
Thomas Heartman
5a036997dc
Revert "Refactor front end code pt 1 (#8438)"
This reverts commit 8c2ed5dc30.
2024-10-14 11:46:09 +02:00
Thomas Heartman
8c2ed5dc30
Refactor front end code pt 1 (#8438)
This PR is the first in the front end code refactoring. It moves My
Flags out into a separate file and includes some extra error handling
(such as if the name of the flag causes problems for the API).


![image](https://github.com/user-attachments/assets/5aec8f0c-de79-4b7d-b56b-42297b872ec5)
2024-10-14 11:45:37 +02:00
Thomas Heartman
e2354dcceb
fix: spacing between lifecycle metrics and env/period selector (#8433)
This PR fixes a spacing issues between the lifecycle metrics and the
environment/period selector. They're now grouped better by proximity.
2024-10-11 14:00:25 +02:00
Thomas Heartman
32816f5abf
fix: handle narrow screens better (#8430)
This PR improves handling of narrow screens. It:
- makes the owner/roles row wrap when it needs to
- makes the lifecycle + metric selectors wrap when necessary
- makes the text for the empty chart wrap (and makes it text, not label)
2024-10-11 11:21:13 +02:00
Thomas Heartman
01b2a15b8a
fix: adjust the height of the flag section (#8426)
This commit adjusts the height of the flag section in the personal
dashboard, so that the chart doesn't cause scrolling on the widest
version.

Before:

![image](https://github.com/user-attachments/assets/32a30338-b647-4458-bc09-604e821b30c7)

After:

![image](https://github.com/user-attachments/assets/c4760900-ef1b-4c45-b8aa-f81dff2a3a55)

Also fixes some issues in regards to super big lists when it goes into
flex mode and makes the chart more responsive
2024-10-11 10:09:26 +02:00
Thomas Heartman
d944eff34c
refactor: use splash api to store splash state (#8422)
To avoid showing the key concepts screen to users every time they log
back in to Unleash (after logging out), store the state in the DB splash
table.

The reason we need to do this is that we clear localstorage on logging
out, so things like splash screens and certain other settings don't get
stored.
2024-10-11 09:19:29 +02:00
Thomas Heartman
74370468d1
fix: section sizes (#8423)
This PR fixes issues with section sizes including:
- Jank when they change suddenly
- Overflowing list of admins / events
- Short lists that should stretch to the height of their container.
2024-10-11 09:10:21 +02:00
Thomas Heartman
4c8aef58ae
fix: revert link changes (#8425)
Making them absolute appears to break them. Reverting to relative links.
2024-10-11 08:09:31 +02:00
Thomas Heartman
f0dc7fa0ae
fix: fix title sizes (#8420)
Makes both headers of the same setup complete section the same size.
Also normalize casing
2024-10-10 13:50:30 +02:00
Thomas Heartman
21887aa3b9
fix: show empty chart when we're loading flag metrics (#8419)
This PR makes it so that we show an empty chart when we're loading flag
metrics, instead of showing the placeholder chart.

It uses a very simple version that may not be the same size as the
standard chart (because it has no labels), but we can change that at a
later date.


![image](https://github.com/user-attachments/assets/621ba1b9-e936-4c65-a77b-e1cd6debf865)
2024-10-10 13:43:31 +02:00
Thomas Heartman
fcce0f852c
chore: track personal dashboard navigation (#8417)
This PR adds plausible tracking for navigating to items from the
personal dashboard.

It tracks:

- Navigating to projects from the list
- Navigating to projects from the onboarding screen
- Navigating to flags from the list
- Opening the key concepts dialog
2024-10-10 13:30:47 +02:00
Thomas Heartman
a5cfd2e80e
feat: handle cases where user has no flags (#8416)
This PR handles the cases where a user has no flags to display. There's
a few different ways this can happen:

1. The user has no project membership.
2. The user has projects, but no flags.

In the first case, we tell them to reach out to their admin.
In the second case, we tell them to go to one of their projects to
create a new flag.

User has no projects:

![image](https://github.com/user-attachments/assets/84b94044-3577-4009-97ae-ab709b94fc2e)


User has no flags:

![image](https://github.com/user-attachments/assets/d7fa2fcc-d758-4d7b-b986-376315150846)
2024-10-10 12:54:42 +02:00
Thomas Heartman
5df7b15af0
fix: chart issues in dark mode (#8414)
This PR fixes two issues with the chart in dark mode:
1. Grid lines are almost invisible
2. Placeholder data lines are way too bright

The fix for both is to use the theme's divider color.


![image](https://github.com/user-attachments/assets/1064d081-0cd8-4b2b-97a7-225e29b3af19)


![image](https://github.com/user-attachments/assets/4f046f98-5664-421a-b0a8-620f2dbe96f9)
2024-10-10 10:03:16 +02:00
Thomas Heartman
e6365d8bce
chore: remove graph, update health message (#8403)
Removes the graph and updates the box to show a health message based on
current health if you don't have any trends:

With trends:

![image](https://github.com/user-attachments/assets/5c7a2102-207c-431f-9918-93a910480d48)

Without:

![image](https://github.com/user-attachments/assets/311427ba-38e9-4d49-9c10-2c932982d4d4)
2024-10-10 09:22:45 +02:00
Thomas Heartman
2ae9589e67
chore: move flag activity info to the left (#8411)
Shifts the display of the activity info to the left instead of cramming
it in next to metrics selectors.

![image](https://github.com/user-attachments/assets/baaafd02-c0d8-40ec-92a0-9b22e7d377d8)
2024-10-10 09:22:26 +02:00
Thomas Heartman
42d5eeb7e5
fix: display tick values for chart Y axis (#8412)
This PR adds back in ticks for the Y axis of the chart. The ticks were
removed when updating the no content chart and this was an oversight.
2024-10-10 08:52:25 +02:00
Thomas Heartman
23b0401381
feat: make panels collapsible (#8395)
This PR makes the projects and flags panels collapsible. The panels are
expanded by default and can be collapsed by clicking on the panel
header. The state of the panels is saved in localstorage.

As part of this, it also:
- moves the flag exposure metrics next to the metric selectors
- fixes the alignment of the "no exposure" line


![image](https://github.com/user-attachments/assets/b41ca808-f5f0-4e17-8bb1-b1388256354d)

Line alignment:
before:

![image](https://github.com/user-attachments/assets/119320d6-d39d-4c34-815a-8a25c6856ad6)

after:

![image](https://github.com/user-attachments/assets/f5b0fe51-1cda-49f9-8b22-e03988429799)
2024-10-09 14:25:58 +02:00
Thomas Heartman
ad35fa9a48
fix: make no data look like no data (#8396)
This PR adjusts what we show for no data to make it clearer that we
actually have no data.

It also makes the graph slightly smaller.


![image](https://github.com/user-attachments/assets/12a009a6-a24d-4821-bb03-c408417011a7)
2024-10-09 13:16:57 +02:00
Thomas Heartman
f23ba70bb4
feat: add timestamps to project events (#8389)
This PR adds timestamps to project events and displays them in the
"latest events" box in the project details view.

It also changes the font weight of events to be only normal.


![image](https://github.com/user-attachments/assets/69ee4052-fe96-4fc9-ae45-0818acb0570a)
2024-10-09 09:32:58 +02:00
Thomas Heartman
3f9278be92
fix: removes welcome message and updates view details button (#8385)
The welcome message doesn't provide much help, and the question mark was
confusing. This PR removes the message and changes the button to look
like a link.


![image](https://github.com/user-attachments/assets/f2039b7a-05c8-4353-8440-22786072d0db)
2024-10-08 12:28:41 +02:00
Thomas Heartman
b190efce53
chore: removes setup badge from personal dashboard (#8384)
The badge has been removed from the onboarding flow, so we don't need
to show it here. This also prepares it for the collapsible sections.
2024-10-08 12:28:31 +02:00
Thomas Heartman
e8c73c79fc
fix: handle lots of project roles better (#8383)
This PR improves how we handle cases where you have lots of roles or roles with very long names.

It puts project roles into it's own little area (and turns it into a list!). We'll show three roles by default. If they all have super long names, we'll split them up onto multiple lines.

Additionally, the headers and avatar group will no longer wrap.

So in edge case territory, it'll look like this:
![image](https://github.com/user-attachments/assets/afb1a809-f6f4-4d25-9796-6abaa15445c1)

And what if one role has an even longer name? It'll wrap inside the badge:
![image](https://github.com/user-attachments/assets/f3b42cc5-2f5a-4447-9e5e-edef7f92f977)
2024-10-08 09:50:28 +02:00
Thomas Heartman
8a7bf865d3
fix: handle project fetching error (#8375)
Work in progress
2024-10-08 08:46:14 +02:00
Thomas Heartman
67f036c0ab
feat: store dashboard state (#8382)
This PR stores the dashboard state (selected project and flag) in
localstorage so that you get taken back to the same project and flag
when you refresh the page or navigate away and back.

It also handles scrolling the selected items into view in case they're
below the fold.
2024-10-08 08:21:23 +02:00
Thomas Heartman
e1f3315f57
Chore: rename Project Insight -> Project health (#8374)
Small copy update. The new square looks like this:

![image](https://github.com/user-attachments/assets/60d525a1-954d-49f1-928a-bbc35d516840)
2024-10-07 11:27:36 +02:00
Thomas Heartman
e7deb8b49b
fix: small breakathon fixes (#8368)
Typo and sx propagation
2024-10-04 15:43:11 +02:00
Thomas Heartman
b4c888a78f
chore: a feature flag -> one (#8367)
Missed a rewording
2024-10-04 13:02:30 +02:00
Thomas Heartman
51336568b1
chore: update the copy to align between project view and personal dashboard (#8365)
Contains small changes to align the two places where we show the same
information.
2024-10-04 12:58:36 +02:00
Mateusz Kwasniewski
ec1fe6278a
feat: make personal dashboard UI more compact (#8359) 2024-10-03 16:20:45 +02:00
Thomas Heartman
cfcaf00a8e
fix: vertically center owners and roles content (#8357)
This change fixes the vertical alignment of the owners and roles
content.

Before:

![image](https://github.com/user-attachments/assets/369a738d-06de-4d40-8b2e-a6fff5127714)

After:

![image](https://github.com/user-attachments/assets/4359c47d-d1d5-47b8-9af4-c722fe46fd79)
2024-10-03 12:29:49 +00:00
Thomas Heartman
aec888a160
fix: add back flex container. (#8356)
The flex styling was deleted by mistake. This adds it back in.
2024-10-03 12:23:38 +00:00
Thomas Heartman
38b33aa032
fix: make gaps 1px instead of 2px (#8351)
This PR reduces the gaps/borders between items in the dashboard grids to
1px.
2024-10-03 10:53:22 +02:00
Mateusz Kwasniewski
10dffcd232
feat: health score components in personal dashboard (#8348) 2024-10-03 10:21:27 +02:00
Thomas Heartman
f5c78605ed
refactor: use css grid for flags and no content grid (#8347)
This PR uses the new CSS grid layout for the flag grid and the no
content grid.

In doing so, it also improves how you use the grid item (giving them a
`gridArea` prop) and extracts the breakpoint handling so that all
sections that use breakpoints use the same breakpoints.

As with the previous PR, here's screenies of the same screen width, but
with open and closed sidebar:
Open:

![image](https://github.com/user-attachments/assets/2d41d412-5072-4c66-9a48-e7aa0d8cff45)

Closed:

![image](https://github.com/user-attachments/assets/994e3f2c-6f4c-4db1-9f10-e1d1a4d96540)
2024-10-03 07:54:27 +00:00
Thomas Heartman
35a73a5b8e
fix: add grid w/container query for projects (#8344)
The main goals of this are:

1. Make it so that the layout grid doesn't break on small screens
2. Fix an issue where the border of the box didn't fit the outline
3. (Bonus): make the layout of the info box depend on the **box's**
size, not the screen size.

To achieve those goals, this PR:
1. Switches to using a native CSS grid instead of MUI's grid component.
This gives us more power over the layout in various different sizes.
2. Switches from putting borders on the boxes inside the grid, instead
makes the grid container the color of the border and uses gaps to create
borders.
3. If your browser supports it, it will use container queries to
determine whether we should display the layout as a multi-column grid or
in a single column.


Container query demo (both with the same screen sizes):

Sidebar closed: 

![image](https://github.com/user-attachments/assets/9a7d9a78-de92-4429-bf06-8e98fbf40ed0)

Sidebar open:

![image](https://github.com/user-attachments/assets/90e790ba-13db-485c-8f5e-ee60fe36dabb)
2024-10-03 07:02:12 +00:00
Mateusz Kwasniewski
c1dde7691b
test: personal dashboard (#8343) 2024-10-02 18:30:04 +02:00
Mateusz Kwasniewski
e0ea1ff34a
fix: event styling personal dashboard (#8337) 2024-10-02 14:24:50 +02:00
Mateusz Kwasniewski
b975919395
feat: health trend insight (#8335) 2024-10-02 13:50:31 +02:00