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

266 Commits

Author SHA1 Message Date
Mateusz Kwasniewski
570f8d2c34
feat: Change request applied diff for update strategy (#8859) 2024-11-27 12:51:11 +01:00
Nuno Góis
14403d7836
chore: release plans flow in flag environments (#8843)
https://linear.app/unleash/issue/2-2816/add-release-plan-to-feature-flag-from-release-template

https://linear.app/unleash/issue/2-2818/list-release-plan-with-milestones-in-feature-flag-environment-section

https://linear.app/unleash/issue/2-2819/removing-release-plan-from-feature

Implements the release plan flow in the feature flag environment.

You can now manage release plans in a feature flag environment by adding
or removing them, as well as start milestones.


https://github.com/user-attachments/assets/24db9db4-7c3a-463e-b48a-611358f2b212
2024-11-26 09:15:24 +00:00
Mateusz Kwasniewski
cf741c6845
chore: update utm links (#8835) 2024-11-22 10:04:41 +01:00
Jaanus Sellin
b72ce90102
feat: archived tooltip alignment (#8820)
From


![image](https://github.com/user-attachments/assets/168cd7ef-6976-47a3-9d2b-e12e45161039)


To


![image](https://github.com/user-attachments/assets/2c2c9593-7079-40b7-ab32-0f9d21c0f9e2)

---------

Co-authored-by: Thomas Heartman <thomas@getunleash.io>
2024-11-21 14:12:14 +02:00
Mateusz Kwasniewski
8e7c63ac68
feat: upgrade change requests (#8812) 2024-11-20 15:16:28 +01:00
Thomas Heartman
3bc9fe9a9a
[wip] add data to ui (#8710)
Hooks up the project status lifecycle data to the UI. Adds some minor
refactoring as part of that effort.

## Other files

There's been some small changes to
`frontend/src/component/feature/FeatureView/FeatureOverview/FeatureLifecycle/FeatureLifecycleStageIcon.tsx`
and `frontend/src/hooks/useLoading.ts` as well to accommodate their
usage here and to remove unused stuff. The inline comments mention the
same thing but for posterity (especially after this is merged), the
comments are:

For
`frontend/src/component/feature/FeatureView/FeatureOverview/FeatureLifecycle/FeatureLifecycleStageIcon.tsx`:

> The icon only needs the name to pick.
https://github.com/Unleash/unleash/pull/7049 deliberately changed the
logic so that the completed stage gets the same icon regardless of its
status. As such, to make the icon easier to use other places (such as in
the lifecycle widget), we'll only require the name.

For `frontend/src/hooks/useLoading.ts`:
> There's no reason we should only be able to put refs on divs, as far
as I'm aware. TS was complaining that that a `ul` couldn't hold a div
reference, so I gave it a type parameter that defaults to the old
version.
2024-11-12 11:35:42 +01:00
Nuno Góis
b4fde58fa0
chore: flag overview page redesign - environments (#8683)
https://linear.app/unleash/issue/2-2826/enabling-environment-via-feature-flag-environment-section-header

https://linear.app/unleash/issue/2-2825/feature-flag-list-bottom-left-to-be-a-nav-section

Follow-up to: https://github.com/Unleash/unleash/pull/8663

Implements most of the remaining work for our flag overview page
redesign.

Most of the code you see is a straight copy/paste from our older
existing components, with the slight improvement here and there.

Includes some improvements to our vertical tabs component to suit our
use case.
Also updates the Demo flow accordingly. I did some manual tests and it
seems to work decently in both scenarios, whether `flagOverviewRedesign`
is enabled or not. The demo needs some love but that's a story for a
different PR and a different time.

Once again, due to the duplicate file pattern, we should remember to
clean this up if we decide to remove the flag.

<img width="1086" alt="image"
src="https://github.com/user-attachments/assets/0c375e34-cbb5-4ac4-a764-39a36b6c6781">
2024-11-08 09:56:46 +00:00
Nuno Góis
328fac39a2
fix: console errors from highlight component and tag key prop placement (#8669)
Addressing some oversights that led to browser console errors.

This PR fixes console errors related to the recently introduced
highlight component (#8643) and tag row component in the new flag
metadata panel (#8663).
2024-11-06 11:09:33 +00:00
Nuno Góis
314a4d7113
chore: new feature flag overview metadata panel (#8663)
https://linear.app/unleash/issue/2-2920/update-the-flag-overview-metadata-properties-to-match-the-new-design

Updates the feature flag overview metadata panel to match the new
design.

This redesign is behind a feature flag, so we opted to go with a
duplicate file approach. We should remember to clean this up if we
decide to remove the flag.


![image](https://github.com/user-attachments/assets/0eb8464c-8279-46a8-9f64-9d914f56db36)
2024-11-06 10:41:39 +00:00
Mateusz Kwasniewski
b7b5a8ae48
fix: stretch strategies underlying root cause (#8520) 2024-10-23 16:24:15 +02:00
Mateusz Kwasniewski
74a87f0e26
fix: stretch strategies (#8519) 2024-10-23 14:15:07 +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
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
Mateusz Kwasniewski
ec1fe6278a
feat: make personal dashboard UI more compact (#8359) 2024-10-03 16:20:45 +02:00
Mateusz Kwasniewski
a1a24ea0b1
feat: flag exposure in personal dashboard (#8247) 2024-09-25 11:11:30 +02:00
Mateusz Kwasniewski
e8fee92838
feat: explain complete feature name (#8120) 2024-09-06 12:45:06 +02:00
Mateusz Kwasniewski
09e619ee25
fix: copy strategy should always add a new strategy (#7994) 2024-08-28 08:23:30 +02:00
Mateusz Kwasniewski
c69036c5a9
feat: new in unleash tooltip (#7991) 2024-08-27 15:47:55 +02:00
Tymoteusz Czech
6c5ce52470
Refactor: Remove react-timeago (#7943)
Remove dependency 🫡
2024-08-21 12:03:03 +02:00
Tymoteusz Czech
0d97f8b7c1
fix: react-timeago issue (#7936) 2024-08-20 14:03:05 +02:00
Tymoteusz Czech
8091987aaa
manually clear DependencyActions (#7827) 2024-08-12 12:00:46 +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
Mateusz Kwasniewski
5cd657065f
feat: copy strategy to current environment (#7730) 2024-08-02 09:46:57 +02: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
Mateusz Kwasniewski
963d051632
feat: Limit environments component (#7548) 2024-07-05 13:03:51 +02:00
Mateusz Kwasniewski
cad8a3c2df
feat: limit component used in strategies (#7542) 2024-07-05 09:09:28 +02:00
Mateusz Kwasniewski
3525928fea
feat: configurable strategies limit (#7488) 2024-07-01 10:03:26 +02:00
Mateusz Kwasniewski
5bd32f264d
feat: strategy limit to 30 (#7473) 2024-06-28 11:18:44 +02:00
Mateusz Kwasniewski
7e5ce08ea8
fix: long project name display (#7435) 2024-06-25 12:22:03 +02:00
Mateusz Kwasniewski
7e565760f6
fix: lifecycle button permissions (#7395) 2024-06-14 10:26:54 +02:00
Tymoteusz Czech
582b33e121
Feat: feature view created by field - frontend (#7382)
add "Created by:" to feature overview meta and align other items
2024-06-13 13:00:57 +02:00
Jaanus Sellin
3acb3ad2c2
feat: upgrade from react v17 to v18 (#7265)
**Upgrade to React v18 for Unleash v6. Here's why I think it's a good
time to do it:**
- Command Bar project: We've begun work on the command bar project, and
there's a fantastic library we want to use. However, it requires React
v18 support.
- Straightforward Upgrade: I took a look at the upgrade guide
https://react.dev/blog/2022/03/08/react-18-upgrade-guide and it seems
fairly straightforward. In fact, I was able to get React v18 running
with minimal changes in just 10 minutes!
- Dropping IE Support: React v18 no longer supports Internet Explorer
(IE), which is no longer supported by Microsoft as of June 15, 2022.
Upgrading to v18 in v6 would be a good way to align with this change.

TS updates:
* FC children has to be explicit:
https://stackoverflow.com/questions/71788254/react-18-typescript-children-fc
* forcing version 18 types in resolutions:
https://sentry.io/answers/type-is-not-assignable-to-type-reactnode/

Test updates:
* fixing SWR issue that we have always had but it manifests more in new
React (https://github.com/vercel/swr/issues/2373)

---------

Co-authored-by: kwasniew <kwasniewski.mateusz@gmail.com>
2024-06-11 13:59:52 +03:00
Thomas Heartman
3039fc3d59
fix: trying to create a tag that's too short gives errors (#7269)
1. Only suggest to create a tag value if the input is more than two
characters after trimming.
2. Ignore trailing and leading whitespace when considering which
autocomplete options to show
2024-06-05 08:47:50 +02:00
Thomas Heartman
257cd5513f
fix: display previously selected tags in dialog (#7271)
When opening a dialog where there's previously selected tags, also
render the previously selected tags.

This is consistent with how we do it for bulk tags.

So instead of showing this when you open the tag manager on a flag with
existing tags:

![image](https://github.com/Unleash/unleash/assets/17786332/c82393f6-9561-4f71-a64e-8537f10400d2)

We show this:

![image](https://github.com/Unleash/unleash/assets/17786332/8ae8acb7-fc13-4289-bae8-d58545f704f3)
2024-06-05 08:13:16 +02:00
Mateusz Kwasniewski
7021763973
feat: explain stickiness (#7248) 2024-06-03 13:54:06 +02:00
Mateusz Kwasniewski
95f5f7a20b
feat: Recent flags (#7211) 2024-05-29 16:01:52 +02:00
Simon Hornby
f16f8594f5
chore: deprecate custom strategies (#7186) 2024-05-28 12:33:53 +02:00
Jaanus Sellin
b3dd460d2f
chore: rename toggle to flag #7 (#7125) 2024-05-23 13:19:49 +03:00
Jaanus Sellin
2fb95339ef
chore: change toggle to flag #3 (#7101) 2024-05-22 09:58:53 +03:00
Jaanus Sellin
8542cafc9f
chore: rename toggle to flag #2 (#7097) 2024-05-22 08:20:11 +03:00
Mateusz Kwasniewski
ce67c4d944
fix: no requests before project loaded (#7096) 2024-05-21 15:54:09 +02:00
Mateusz Kwasniewski
08e05141f3
chore: remove e2e tests for legacy env variants (#7071) 2024-05-17 10:55:22 +02:00
Mateusz Kwasniewski
701c845f09
feat: uncomplete tracking (#7053) 2024-05-14 15:04:31 +02:00
Mateusz Kwasniewski
b2b8d94617
feat: lifecycle column extracted (#7049) 2024-05-14 09:24:54 +02:00
Mateusz Kwasniewski
56f2dd658e
feat: track complete event (#7047) 2024-05-13 14:51:28 +02:00
Mateusz Kwasniewski
dfc065500d
feat: kept and discarded read model (#7045) 2024-05-13 14:24:31 +02:00
Jaanus Sellin
4241e36819
fix: lifecycle improvements/fixes (#7044)
1. Now completed modal works from project view
2. Changed text for modal
3. Now variant selection will only appear if there are any variants
2024-05-13 13:41:36 +03:00
Mateusz Kwasniewski
56ae53a4da
feat: pre-live should include disabled prod (#7031) 2024-05-10 13:53:01 +02:00
Mateusz Kwasniewski
60a67d4775
fix: Adjust meta data icons (#7026) 2024-05-10 11:46:32 +02:00