1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-03-09 00:18:26 +01:00
Commit Graph

3414 Commits

Author SHA1 Message Date
Mateusz Kwasniewski
d3294d58c2
chore: remove navigation sidebar leftover flag (#8504) 2024-10-22 10:08:27 +02:00
Nuno Góis
c170580064
chore: add Plausible events to Unleash AI chat (#8494)
https://linear.app/unleash/issue/2-2856/add-plausible-tracking-in-unleash-ai-open-close-chat-send-message

Adds Plausible tracking to some Unleash AI chat events:
 - Open chat
 - Close chat
 - Send message
2024-10-21 14:58:13 +01: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
Nuno Góis
0f3e7ec7e3
chore: Unleash AI chat UX bug fixes (#8488)
https://linear.app/unleash/issue/2-2859/small-ux-bug-fixes-on-the-unleash-ai-chat

Bug fixes:

- Up and down arrow keys not functioning in multiline input
- Multiline input expanding beyond the intended size limit
- Chat window failing to properly scroll to the bottom when opened
2024-10-21 08:38:28 +01:00
Nuno Góis
5b1e875131
chore: add an initial disclaimer to Unleash AI (#8482)
https://linear.app/unleash/issue/2-2853/add-a-disclaimer-to-the-unleash-ai-chat-window

Adds a small, initial disclaimer to Unleash AI chat.


![image](https://github.com/user-attachments/assets/0097bb92-9724-4cef-922e-4c97770fe8e1)
2024-10-18 14:48:49 +01:00
Nuno Góis
ffcfe85575
chore: scroll-related UX adjustments in the Unleash AI chat (#8478)
https://linear.app/unleash/issue/2-2857/make-some-scroll-related-ux-adjustments-to-the-unleash-ai-chat

Introduces scroll-related UX enhancements to the Unleash AI chat,
providing a smoother and more refined user experience.
2024-10-18 14:38:46 +01:00
Mateusz Kwasniewski
9b3529d7cb
fix: missing page titles (#8477) 2024-10-18 13:12:58 +02:00
Thomas Heartman
88f396f6b6
fix: allow you to add spaces to role descriptions (#8475)
This fixes a bug where we didn't allow spaces in role descriptions.
The bug came about because we wanted to disallow empty descriptions,
but that means we need to trim them before validating, not necessarily
before setting it.

However, that does mean that you can have descriptions with leading
and trailing spaces now, but that's probably fine.

To fix this, we'd have to do the trimming of the description only at
submission time, I think.
2024-10-18 11:07:06 +02:00
Thomas Heartman
9f0c438f36
fix: add the dashboard icon to the iconrenderer (#8474)
This makes the icon show up correctly in the command menu.


![image](https://github.com/user-attachments/assets/0178c9a7-3509-4f36-9a33-fe12e5a42707)
2024-10-18 09:03:29 +02:00
David Leek
d9646edcfc
feat: release plans nav menu item and icon suggestion (#8469) 2024-10-18 08:23:52 +02:00
Simon Hornby
d5ddbdd75f
chore: patch text when trying to add a root role group (#8470)
This changes the warning on adding group root roles to cover all roles
rather than just Editor or Admin. This got opened to Viewers in a 2K
line monster PR that was mostly refactor so I'm assuming this was an
accident but it's not a dangerous accident

## Discussion

Okay so why change the warning rather than change the code?

Two reasons.
1) This has been like this for a year and a half. It was changed before
the feature entered GA, so users are probably used to it by now. Seems
rude to take things away and it's harmless to keep it
2) It's consistent with everything else to have all 3 roles displayed
and removes an edge case in the code
2024-10-17 12:00:44 +02:00
Nuno Góis
f2256423d5
chore: adapt UI to server-side Unleash AI chat ownership (#8466)
https://linear.app/unleash/issue/2-2847/adapt-unleash-ai-chat-logic-to-new-server-side-chat-ownership-logic

Adapts the Unleash AI chat logic on the UI to the new server-side chat
ownership logic.
2024-10-17 09:50:27 +01:00
Tymoteusz Czech
793221524c
feat: prompt for feedback after second flag created (#8467) 2024-10-17 11:49:17 +03:00
Thomas Heartman
131e608885
fix: fix two disabled tooltips (#8464)
Fix this warning:

> MUI: You are providing a disabled button child to the Tooltip
component.
> A disabled element does not fire events.
> Tooltip needs to listen to the child element’s events to display the
title.
> Add a simple wrapper element, such as a span.
2024-10-16 15:25:50 +02:00
Thomas Heartman
cb0a26941b
fix: wrap the UserAvatar component in forwardRef (#8461)
This fixes another one of the warnings we have in our tests and is
probably a sane change to make anyway.
2024-10-16 14:58:34 +02:00
Thomas Heartman
fe09ae214f
chore: fix "key" prop issues in front end tests (#8459)
Fixes all warnings about the "key" prop. The majority of the fixes fall
into one of the following categories:

- Extracting "key" props in tables (you're not allowed to just spread
them in)
- Adding "key" props to autocomplete options and chips
- fixing test data that didn't contain ids
2024-10-16 14:57:43 +02:00
Melinda Fekete
c580e762b3
Restructure features documentation (#8394) 2024-10-16 13:59:30 +02:00
Nuno Góis
9a98f86077
chore: make the Unleash AI chat resizable (#8456)
https://linear.app/unleash/issue/2-2840/make-the-unleash-ai-chat-window-resizable

This PR makes the Unleash AI chat resizable, providing users with a
flexible way to adjust the chat window's size.

Implements a reusable `Resizable` wrapper component that allows
configuration of:
 - Minimum, maximum, and default sizes.
- Customizable resize handlers for each edge and corner of the
container.
 - Optional resize event callbacks.

Double-clicking any resize handler maximizes the container along that
axis (or both, if it's a corner). If the container is already maximized,
double-clicking again will revert it to the default size.
2024-10-16 09:15:40 +01:00
Thomas Heartman
6ba87d1436
chore: fix invalid dom nesting (#8451)
This PR fixes all `invalidDomNesting` errors we're getting in our tests.
The culprit was the `Badge` icon we use, which wrapped its children in a
div. When that's used as a child of a `p` tag, that'd cause this to
trigger.

What I've done is to change the wrapping element to a span instead. The
Badge itself uses an `display: inline-flex`, so divs and spans should be
treated the same, meaning there's no visual change for this.
2024-10-16 08:33:47 +02:00
Nuno Góis
8d4e84d6eb
fix: unleash AI chat message code not breaking to new line (#8455)
https://linear.app/unleash/issue/2-2841/fix-a-bug-where-code-does-not-break-to-new-lines-in-messages

Fixes a bug where code in an Unleash AI chat message would not break to
new lines.

### Before

<img width="451" alt="image"
src="https://github.com/user-attachments/assets/43023206-f6e9-48ef-bd22-cc0c0fe04668">

### After

<img width="404" alt="image"
src="https://github.com/user-attachments/assets/2f0bad32-8d40-4edd-bdbb-df0eb9ffb977">
2024-10-15 14:43:01 +00: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
Tymoteusz Czech
258eb36afe
fix($env): fix environment order form state (#8449) 2024-10-15 09:44:40 +00: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
Tymoteusz Czech
f5a2a18ffc
Add environment types environment order (#8447) 2024-10-15 11:00:31 +02:00
Thomas Heartman
4167d772e9
chore: rename personal dashboard menu item to dashboard (#8437)
This change updates the title for the personal dashboard menu item to
be just "dashboard"

Before:

![image](https://github.com/user-attachments/assets/d04be63c-ad1f-471b-8ab1-5e781063716c)

After:

![image](https://github.com/user-attachments/assets/dc4a39b6-5b30-455d-b20a-6f04f84962d7)
2024-10-15 09:34:43 +02:00
Nuno Góis
d02443be95
chore: Unleash AI chat UI (#8445)
https://linear.app/unleash/issue/2-2792/create-the-aichat-component

Implements the Unleash AI chat UI.

This is essentially a polished version from the hackathon.

It will show up in the bottom right corner when the respective
prerequisites are met.

<img width="1508" alt="image"
src="https://github.com/user-attachments/assets/80da15a5-e638-4ccf-850b-508fcfd4991a">

<img width="1507" alt="image"
src="https://github.com/user-attachments/assets/8690cd42-1106-4f42-b459-41e574ab282f">

<img width="1506" alt="image"
src="https://github.com/user-attachments/assets/ea243828-ffcd-4243-b40c-6fa6357c3e70">
2024-10-15 08:14:04 +01: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
Jaanus Sellin
a991cf4eff
fix: now health widget will match will chart (#8432)
Now it will match with chart if no data.

Previous


![image](https://github.com/user-attachments/assets/48d9c19b-962f-45b9-ab6e-defacd53d90e)



Now


![image](https://github.com/user-attachments/assets/f0132890-9491-4f0e-a88b-e5444ca3eb6b)
2024-10-11 14:33:46 +03:00
Tymoteusz Czech
226874fe23
fix($env): order API integration update (#8431) 2024-10-11 13:23:54 +03:00
Jaanus Sellin
cc07a48500
feat: more clear pricing text (#8429)
![image](https://github.com/user-attachments/assets/c7643829-efe5-43d6-90fc-546d3a47d0b2)

---------

Co-authored-by: Tymoteusz Czech <2625371+Tymek@users.noreply.github.com>
2024-10-11 13:19:11 +03: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
Tymoteusz Czech
1fa918e4f7
feat($env): additional environments - API integration (#8424)
Make API calls from "order environments" dialog, improve validation
2024-10-11 09:01:35 +00: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
Jaanus Sellin
e72aa2871e
feat: order environment plausible events (#8427) 2024-10-11 11:05:33 +03: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
Nuno Góis
7c5fab518f
chore: use new signal meta properties in event timeline (#8421)
https://linear.app/unleash/issue/2-2796/better-signals-integration

Adds support to the following signal payload meta properties:
 - `unleash_title`
 - `unleash_description`
 - `unleash_icon`
 - `unleash_variant`

Follows a logic similar to what we currently have for banners. E.g.
[custom icon](https://docs.getunleash.io/reference/banners#custom-icon).

## Call signal endpoints

![image](https://github.com/user-attachments/assets/7c806a96-5aa4-40a7-b24e-27ab8dc4e374)

![image](https://github.com/user-attachments/assets/6edfd45d-d702-4bd3-9af8-d3655528b09e)


## View signals in event timeline

![image](https://github.com/user-attachments/assets/b3852686-e2c8-407c-b968-b52a1686fdd6)

![image](https://github.com/user-attachments/assets/b47683c5-51b6-426c-96d1-7308fc9e6eab)
2024-10-10 15:41:02 +01: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
Tymoteusz Czech
534dd093d2
Additional environments confirmation dialog (#8407) 2024-10-10 10:26:13 +02:00