1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-07-12 13:48:35 +02:00
Commit Graph

98 Commits

Author SHA1 Message Date
Jaanus Sellin
5733f91347
feat: archived toggles do not show switch (#8696)
Archived toggles will not show switch anymore, but a dash.

![Screenshot from 2024-11-08
11-41-17](https://github.com/user-attachments/assets/d43de8ff-13c3-4f70-8f8f-b7e5bbc4d0bc)
2024-11-08 12:27:41 +02:00
Mateusz Kwasniewski
730200c05b
test: flaky flag type selection (#8677) 2024-11-06 14:51:43 +01:00
Thomas Heartman
c9a564a556
chore: add placeholder project status sidebar (#8629)
This PR adds an empty placeholder sidebar for the project status
content.

It also adds a button to open the sidebar.

Additionally, because the button to open the sidebar takes the place of
the existing "import" button, the import button has also been moved down
to the filter row.

Of course, these changes are all behind the flag, so if nothing should
change if the flag is not enabled.


![image](https://github.com/user-attachments/assets/ca2d6136-5705-4ec0-9c26-21981827ca07)

![image](https://github.com/user-attachments/assets/383d2a09-ab56-4ff6-b801-df9da5a19765)
2024-11-01 12:04:22 +00:00
Jaanus Sellin
90ed7b6079
feat: archived row styling (#8608)
1. Added badge
2. Added archived row styling. Button not clickable and gray


![image](https://github.com/user-attachments/assets/a15a3b1d-4caa-448b-a9ed-b60de4115cb7)
2024-10-31 12:30:00 +02:00
Jaanus Sellin
65c7f77980
feat: hide archive UI behind flag (#8591)
This new UI needs more work and we are soon making 6.4 release, I do not
want to release it without flag. Putting it behind flag.
2024-10-30 11:52:01 +02:00
Jaanus Sellin
5f67dcefcd
feat: archive is now part of project feature list (#8587)
![image](https://github.com/user-attachments/assets/6218a1f7-1ef7-49f8-85d0-c6ee1c34d954)
2024-10-30 10:38:42 +02:00
Jaanus Sellin
28e062b5cf
feat: archived features can be searched now (#8568)
Archived features can be searched now.
This is the backend and small parts of frontend preparing to add
filters, buttons etc in next PR.

---------

Co-authored-by: Thomas Heartman <thomas@getunleash.io>
2024-10-29 13:19:13 +02:00
Jaanus Sellin
eaab9db60d
fix: now feature table does not dissapear (#8554)
Feature table does not dissapear when onboarding and filter settings
hides all features
2024-10-28 15:39:20 +02:00
Tymoteusz Czech
793221524c
feat: prompt for feedback after second flag created (#8467) 2024-10-17 11:49:17 +03:00
Jaanus Sellin
0077a56ef6
feat: add plausible for onboarding (#8352)
Tracking events for

1. Onboarding started/project created
2. Onboarding finishes
3. API token generated
4. Sdk example clicked

Not tracking events that can happen multiple times and results are
skewed

1. Moving between onboarding steps
2024-10-03 14:41:50 +03:00
Jaanus Sellin
e51e6cc507
feat: improve onboarding flow (#8327)
1. Refetch features when creating the flag. It took a while for it to
appear before.
2. Fix NodeJS snippet and make texts more clear.
2024-10-02 10:39:47 +03:00
Jaanus Sellin
ee9f8c8836
fix: now only one onboarding screen will be shown at time (#8290)
Makes the button more clear. 

Now both **onboarding** started and **onboarding finished** screens will
not be shown in the same time.
2024-09-27 14:58:03 +03:00
Jaanus Sellin
86e7bbc85d
feat: after onboarding show success box with resources (#8278)
![image](https://github.com/user-attachments/assets/7e60ad54-c750-4e8a-8556-a1735a99a43e)
2024-09-26 15:40:14 +03:00
Jaanus Sellin
4397af0df7
chore: move onboarding flow and dialog under same location (#8272)
It is mostly moving the onboarding folders under same directory for more
clear project structure.
2024-09-26 12:56:49 +03:00
Jaanus Sellin
aca0de414e
feat: display new completed dialog (#8255)
1. Now the dialog will not close when SDK got connected
2. It will start to show the suggested production code. ( this will be
attached in next PR)
3. Also, it has connected indicator on the right
4. Back button is removed in this stage.


![image](https://github.com/user-attachments/assets/c7290e0f-8fa7-4382-a91d-7206e32d81ae)

---------

Co-authored-by: Tymoteusz Czech <2625371+Tymek@users.noreply.github.com>
2024-09-26 09:24:15 +03:00
Jaanus Sellin
7e13e74a3e
feat: only show sdk button to specific roles (#8231)
This aligns it with our expectations we agreed on discovery meeting.
2024-09-24 12:43:22 +03:00
Jaanus Sellin
9f5e909436
feat: onboarding can be now closed (#8215)
The boxes were merged and now the whole thing can be closed.


![image](https://github.com/user-attachments/assets/45ec680f-64df-4877-92cb-33fef506f0ad)
2024-09-23 13:52:00 +03:00
Jaanus Sellin
553e04994e
fix: now onboarding will show up in correct times (#8214)
Feature table was not appearing, when onboarding flag was off.
2024-09-23 12:57:47 +03:00
Jaanus Sellin
ebcdd67db0
feat: onboarding flow will not break (#8198)
1. Now onboarding flow will not break when feature is created
2. Now the bottom table will appear as soon as first feature appears
3. ExistingFlag component was reworked to match the new UX


![image](https://github.com/user-attachments/assets/2022f4ad-246c-47f9-927f-726f72da5e97)
2024-09-20 14:31:11 +03:00
Melinda Fekete
0587203ad6
chore: update project onboarding UI text (#8189) 2024-09-20 10:30:33 +02:00
Jaanus Sellin
b6e22d6178
feat: new onboarding welcome screen logic (#8110)
1. We will not show grid until 2 flags exist
2. Now new feature creation button will be always displayed on top with
different style
3. Moved some text around


![image](https://github.com/user-attachments/assets/6cfc2152-b52d-479c-8a2e-988c9e8b79ad)
2024-09-06 13:15:28 +03:00
Mateusz Kwasniewski
0b656db80a
test: onboarding test with existing key (#8116) 2024-09-06 11:50:52 +02:00
Mateusz Kwasniewski
9f591f0cda
feat: change sdk action (#8098) 2024-09-05 11:55:37 +02:00
Mateusz Kwasniewski
62d03d35cd
feat: check flag status snippet (#8097) 2024-09-05 11:17:42 +02:00
Jaanus Sellin
4b1de563f7
feat: add sdk example box (#8092)
![image](https://github.com/user-attachments/assets/472dcbb2-d981-4d7c-8bbf-b97a6ee4c186)
2024-09-05 10:35:43 +03:00
Jaanus Sellin
48ddd255d6
feat: connect welcome to sdk dialog (#8078)
Now welcome screen is connected to sdk dialog.
2024-09-04 13:19:08 +03:00
Jaanus Sellin
f41a688edb
feat: welcome to project onboarding status rendering (#8076)
![image](https://github.com/user-attachments/assets/8a828f95-10bd-4294-b2f4-1d7f4e7f1a3d)
2024-09-04 12:17:33 +03:00
Mateusz Kwasniewski
3f24728693
feat: Select sdk onboarding pt 1 (#8065) 2024-09-03 16:37:20 +02:00
Mateusz Kwasniewski
82f9783fe6
feat: connect sdk step 1 (#8042) 2024-09-02 15:58:00 +02:00
Jaanus Sellin
e4fcb252d1
feat: welcome to your project component (#8039)
Currently displaying always when flag enabled.


![image](https://github.com/user-attachments/assets/e4c48595-b2d9-4093-af98-360d5856e7d5)
2024-09-02 15:09:00 +03:00
Jaanus Sellin
f7d5c8e12d
feat: introduce new icons for import/export (#7970)
We found good one for export from MUI, but needed to created similar one
for import.


![image](https://github.com/user-attachments/assets/f8ed2f07-5c8b-4829-a298-4b5e7311b059)
2024-08-22 15:04:50 +03:00
gitar-bot[bot]
4615ff40ce
[Gitar] Cleaning up stale flag: resourceLimits with value true (#7964)
[![Gitar](https://raw.githubusercontent.com/gitarcode/.github/main/assets/gitar-banner.svg)](https://gitar.co)
  
  ---
This automated PR was generated by [Gitar](https://gitar.co). View
[docs](https://gitar.co/docs).

---------

Co-authored-by: Gitar <noreply@gitar.co>
Co-authored-by: Thomas Heartman <thomas@getunleash.io>
2024-08-22 13:20:53 +02:00
Jaanus Sellin
4a4dafcc3f
chore: remove create feature component (#7959)
After we implemented new feature flag creation flow, this are not used
anymore.

Creation is now handled by **CreateFeatureDialog**.

Also edit component can be minified, because it does not need so many
fields anymore.
2024-08-22 11:30:41 +03:00
gitar-bot[bot]
977f969b80
[Gitar] Cleaning up stale flag: improveCreateFlagFlow with value true (#7895)
[![Gitar](https://raw.githubusercontent.com/gitarcode/.github/main/assets/gitar-banner.svg)](https://gitar.co)
  
  ---
This automated PR was generated by [Gitar](https://gitar.co). View
[docs](https://gitar.co/docs).

---------

Co-authored-by: Gitar <noreply@gitar.co>
Co-authored-by: sjaanus <sellinjaanus@gmail.com>
2024-08-15 15:53:36 +03:00
Thomas Heartman
fa96ff1450
fix: display feature naming patterns in dialog (#7837)
Updates the dialog form template to include a `namingPattern` prop that
can be used to display the naming pattern of whatever the form is used
for.

Also updates the create feature dialog to display the naming pattern in
the current project.

The naming pattern component re-uses the pattern that we have in place
for feature naming patterns, but puts it in an expandable dialog
instead.

Screenies:

Naming pattern closed:

![image](https://github.com/user-attachments/assets/145e4268-1aa0-4c1b-8f08-97857447e2f5)


![image](https://github.com/user-attachments/assets/1613c846-e7d4-41c8-a1c8-a66ab87b6e5f)



Naming pattern open:

![image](https://github.com/user-attachments/assets/1aa37162-500b-4b83-926f-07aa777e8017)
2024-08-12 13:56:07 +02:00
Thomas Heartman
99f878d725
fix: don't always fetch all flags on project flag screen (#7834)
There's a bug where the UI will fetch all features every time you load a
project screen (including every time you filter the project results).

The reason is that the create flag dialog was rendered (just not open)
every time. To solve it, we instead wrap it in an extra component that
prevents all the fetching and setup from running when the dialog isn't
open.

Additionally, we'll lower the page size for the global fetch limit to 1,
so that we send less data.
2024-08-12 11:07:36 +02:00
Mateusz Kwasniewski
b65e593c23
chore: remove featureLifecycle and featureLifecycleMetrics flags (#7808) 2024-08-08 13:45:23 +02:00
Mateusz Kwasniewski
3fe385e127
chore: remove flagCreator flag (#7807) 2024-08-08 12:19:32 +02:00
Thomas Heartman
dd71fe32bb
Update front end schemas for new event search (#7758)
Updates the orval spec for the new event search.
2024-08-05 12:48:01 +00:00
Thomas Heartman
f1e95108d1
Wip: split out avatar group; use same tooltip for all avatars (#7681)
Extracts the Avatar Group component into a `common` component and adds a
standard tooltip to all avatars.

Relates to linear issue 1-2606

This is a suggestion / proof of concept for how we can solve it. While I
think we can merge this as is, I'd also be happy to take any discussions
on other ways to approach it etc.

## Why are these changes made together?

Because extracting the avatar group without adding the new tooltip data
made the existing tooltip misbehave (it'd show up in the top left of the
screen, not synced to the avatar in any way).

I probably could have (and still can if you think it's prudent) split it
out such that the avatar gets a standardized tooltip first (and disable
it for the group card avatars), and split out the avatars in a
follow-up. Happy to do that if you think it's better.

## What does this mean? 

It used to be that we had no consistent way of dealing with avatars and
tooltips. Some places had them, some places didn't. This change makes it
so that all avatars that we can show tooltips for will get the same
tooltip.

Previously, we had at least 4 different ways of dealing with tooltips:
- The HTML tooltip (that would be standardized with this PR) in the
project flags table

![image](https://github.com/user-attachments/assets/91098d31-a5e3-4091-9125-332fe5d106fd)
- The "title" that you'd get on your user avatar

![image](https://github.com/user-attachments/assets/39062b61-db8c-4bd5-9fa3-3ecc9bc192ee)
- The group card list tooltip

![image](https://github.com/user-attachments/assets/0d4a696a-e944-446c-8bff-4dcec02d8afb)
- And sometimes you'd get nothing at all

![image](https://github.com/user-attachments/assets/8975afaf-9ca1-4eb6-b443-9ab94b52bbd8)

with this change, we'll always show the same kind of tooltip if we can:


![image](https://github.com/user-attachments/assets/974c592c-c844-4b65-8a55-05e84d3df130)

## What goes in the tooltip? 

We use the `UserAvatar` component for a fair few different things and I
didn't want to extract separate components for all the different use
cases. Instead, I wanted to get an overview over what we use it for and
what is relevant info to show.

I found all the places we used it and tried to form an opinion. 

This tooltip will work with a user's email, name, username, and id. If
there is no user (such as for empty avatars and avatars displaying only
"+n" for remaining members), we show no tooltip.

Following the example set by the group card avatars, we'll try to use
email or username (in that order) as the main bit of text. If the user
has an email or a username and also a name, the name will be used as
secondary text.

If the user does not have an email or username, but has a name, we'll
use the name as the main text.

If the user does not have an email, a username, or a name, we'll try to
show "User ID: N" if they have an id.

If they do not have a username, a name, an email, or an ID, we bail out
and show nothing.

## Why can you disable the tooltip?

In some cases, you might want to disable the tooltip because you have
more information to feed into it. An example of that is in the project
flags table, where we want to show more information in cases where the
user is 'unknown':


![image](https://github.com/user-attachments/assets/758b4e86-e934-47e3-91ce-ce900f76bc54)


## Additional fixes

This PR also adds a few lines of CSS to fix a minor avatar layout bug.

Before:

![image](https://github.com/user-attachments/assets/0150efbf-c51a-40bb-898f-7ddd3565ce21)


After:

![image](https://github.com/user-attachments/assets/f337cf68-c572-4610-b1de-a27749325da8)
2024-08-01 10:45:24 +02:00
Thomas Heartman
1cd1f982ee
fix: allow editors to submit flag form (#7687)
This change is a follow-up to
https://github.com/Unleash/unleash/pull/7685 and fixes another
instance of the same issue.

It wasn't caught previously, because the permissions are passed as
props here, and not used directly.


![image](https://github.com/user-attachments/assets/e8c4cb90-92e3-42ca-9c15-458b5b9d37c2)
2024-07-29 09:45:52 +00:00
Thomas Heartman
80cff0a5fa
fix: allow editors to create flags again (#7685)
This change fixes a bug where editors were suddenly unable to create
flags. The issue is that the new project creation dialog used a
permission button, but didn't supply the project ID.
2024-07-29 09:24:32 +00:00
Thomas Heartman
3a3aaad37d
feat: Use a toggling button for impression data on/off (#7682)
Instead of using a dropdown list for impression data, this PR introduces
a new config button that is a switch type button. It will be filled
(contained) when impression data is on and will be outlined when
impression data is off.

Off:

![image](https://github.com/user-attachments/assets/4710c8aa-a853-43c3-bf3b-86dbbf1a2779)


On:

![image](https://github.com/user-attachments/assets/08316155-83d1-45a2-941f-1c49c254a02b)
2024-07-29 08:05:35 +00:00
Thomas Heartman
9b2c0bf55b
fix: shorten max project name width in feature toggles creation form (#7678)
This change sets the max project name label width to 20ch instead of
30ch.

At 30ch, the button is wide enough that it causes the buttons always
to overflow. At 20, it's about as wide as the impression data button,
and it renders on one line.


Before:

![image](https://github.com/user-attachments/assets/8d28a948-dfa1-4f75-bc8d-473ceb322631)

After:

![image](https://github.com/user-attachments/assets/c73ccc58-13ab-4b33-a82e-275130494c3d)
2024-07-26 12:08:58 +02:00
Thomas Heartman
39cda30dab
chore: update description/docs for the new feature creation dialog fields (#7677)
This PR updates the text used to describe the different fields used in
the new creation dialog.

It also removes a redundant aria attribute (that MUI already handles).
2024-07-26 09:57:22 +00:00
Thomas Heartman
c7bb6c5179
fix: prevent long project names from blowing out the form (#7673)
This change prevents long project names from blowing the form out of
proportion.

To do so, it:
1. sets `whitespace: no-wrap` on the button labels. Judging by the other
styles, this was the intention all along, but it didn't really come up
until now.

2. It also sets the label width for projects to 30ch,so that you'll get
to see quite a bit of the project name before it gets cut off.

It would be possible to set a dynamic width for this button based on the
longest project name, but I'm not sure it adds much value, so I'm
leaning towards keeping it simple.

Here's what the dynamic width would look like:

``` tsx
    const projectButtonLabelWidth = useMemo(() => {
        const longestProjectName = projects.reduce(
            (prev: number, type: { name: string }) =>
                prev >= type.name.length ? prev : type.name.length,
            0,
        );
        return `${Math.min(longestProjectName, 30)}ch`;
    }, [projects]);
```

What it looks like:

![image](https://github.com/user-attachments/assets/51bca3f6-aeb3-4a41-b57e-5ebd9baa3ef6)
2024-07-26 11:39:43 +02:00
Thomas Heartman
c0d7be040d
fix: make config dropdown list generic over values (#7676)
This PR makes the config dropdown list generic over its values, so that
you can pass stuff that isn't strings.

It also updates the existing impression data button to use booleans
instead.
2024-07-26 11:38:29 +02:00
Jaanus Sellin
b55d6f46d0
feat: add tags selection to feature creation (#7674)
![image](https://github.com/user-attachments/assets/539bd2a0-d036-4a8d-9752-fd60c7e4bf24)
2024-07-26 12:13:56 +03:00
Thomas Heartman
6e34ae4ada
fix: project icon sizing and color (#7672)
This PR fixes the project icon sizing and color in the create feature
form. However, it includes a little more cleanup work.

1. I've switched out the previous project icon with a new one. The
difference? The old one had lots of whitespace around it, which made
sizing it awkward.
2. I've added a wrapping Icon component to common. The idea was taken
from this thread on the MUI GitHub about how to make imported icons
behave consistently with MUI icons.
3. Because I've switched the icon and added a new component, I've also
gone and updated the other places we used the old icon, so that we're
consistent about the usage.

In create dialog form:

![image](https://github.com/user-attachments/assets/9b5caed7-cd50-437b-82bb-1d7ccbfaac3f)

Updated icon in:
Project card component

![image](https://github.com/user-attachments/assets/4ce809f4-4083-4554-ac4c-3597d9bf42df)


Project creation form

![image](https://github.com/user-attachments/assets/4227416f-a56d-41ed-96a4-99b71a11dbf7)


Sidebar and command bar (it's actually larger here, but maybe that's
okay? Previous project was kinda small):

![image](https://github.com/user-attachments/assets/72b8aa2e-6970-4c11-9a4d-250648b44ad9)

(Previous sidebar and command bar):

![image](https://github.com/user-attachments/assets/bcef9208-9819-4742-87a1-3a20d50d741c)


I'd be willing to leave the sidebar and command bar for now if we think
it's better to leave them using the same size as previously, but we can
talk about that. I think it's better in the sidebar; undecided about the
command bar.

Bonus changes: I fixed some typos
2024-07-26 10:26:16 +02:00
Thomas Heartman
d96da453a4
fix: show the selected project's name on the button, not its ID (#7671)
This change makes it so that we show the name of the project that is
selected on the selection button instead of the ID. There is a chance
that the name is not unique, but I'm willing to take that risk (plus
it's how we do it today).

I've used a useMemo for this, because we have to scan through a list
to find the right project. Sure, it's always a small list (less than
500 items, I should think), but still nice to avoid doing it every
render. Happy to remove it if you think it obfuscates something.

We *could* also use a `useState` hook and initialize it with the right
value, update when it changes, but I actually think this is a better
option (requires less code and less "remember to update this when that
changes").
2024-07-26 09:27:25 +02:00