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

4332 Commits

Author SHA1 Message Date
Thomas Heartman
44082b24a1
chore: second design pass for editable constraints (#9843)
Fix a number of visual issues with the main editable constraint
component.

I've introduced a few more layers of container nesting to make the
layout break the right ways:
- Put everything on the same line when on wide.
- At 700px place selected values on the row below
- From 700px down, when necessary, also wrap operator options


Support super long context names without breaking layout
<img width="399" alt="image"
src="https://github.com/user-attachments/assets/07555e9c-d875-417f-ae6b-d4600731d5eb"
/>

Wrap values at 700px width container:
<img width="703" alt="image"
src="https://github.com/user-attachments/assets/deb6e059-57d4-4e47-88da-3ec5d6bce751"
/>

Wrap operator options when necessary
<img width="359" alt="image"
src="https://github.com/user-attachments/assets/ff96db40-f47d-4ddf-bed7-dfced4d69973"
/>

Absolutely position delete button to allow to not push it out of the
container on narrow screens:
<img width="330" alt="image"
src="https://github.com/user-attachments/assets/c7b8f88d-538a-46a1-ae3f-e5a761b50289"
/>

Remove extra focus styling from MUI (darken select background):
Before:
<img width="348" alt="image"
src="https://github.com/user-attachments/assets/99aff08d-c1af-46c0-8a75-40c1ea3c103f"
/>

<img width="357" alt="image"
src="https://github.com/user-attachments/assets/b7a0edac-2716-48a7-b50c-b3437e5f5be8"
/>

After:
<img width="379" alt="image"
src="https://github.com/user-attachments/assets/74da884c-7b1a-4b9a-8383-31592326a71b"
/>
<img width="350" alt="image"
src="https://github.com/user-attachments/assets/0ebea696-5f7d-4d4e-b91c-b087a8fc56a3"
/>
2025-04-25 10:37:04 +00:00
Thomas Heartman
44e9023fb3
Don't show extra input component if we have "add values" button (#9842)
Makes it so that the InputContainer is only rendered if we don't have
the add values button up top. We might need to adjust this later (as we
get more sketches for other input types, such as single numbers, single
semvers etc), but it works for now.

With legal values  (no add values button)
<img width="765" alt="image"
src="https://github.com/user-attachments/assets/032cc848-584e-4c3f-83ed-be1fb1cdc0f8"
/>

Without legal values (but add values button)
<img width="763" alt="image"
src="https://github.com/user-attachments/assets/1a8fa68e-a73b-42fc-a1b8-e8f5997f3c5d"
/>

Because we don't handle single value cases yet, some of those inputs are
still stuck in an in-between state:
<img width="775" alt="image"
src="https://github.com/user-attachments/assets/25b6ae89-9267-4f06-a32d-3460abe4a847"
/>
2025-04-25 12:23:18 +02:00
Thomas Heartman
799fc1f518
1-3658/fix legal values selector issues (#9838)
Fixes an issue with the new legal values selector where selecting an
item from filtering or changing the checkbox state would move your focus
to the top of the page. I think it's because we'd re-render the whole
tree because of it, and this would clear your focus selection. To get
around it, I've used the existing ResolveInput component. We might want
to change this later as we get around to more input components (single
values, etc), but for now, I think this is good enough.

As a bonus, I get to delete the most annoying part of the
EditableConstraints file 😄

The constraint still opens in edit mode for now, but I expect that to
get resolved once we properly implement the split between editable and
non-editable constraints that was started yesterday.
2025-04-25 09:41:23 +02:00
Nuno Góis
8e46bda8e1
chore: fix admin routes should respect plan data (#9828)
https://linear.app/unleash/issue/2-2852/sidebar-bug-with-enterprisepro-only-route-constraints

Fixes an issue where admin routes didn't respect plan data if their flag
was enabled.

First noticed here:
https://github.com/Unleash/unleash/pull/8469#discussion_r1804361222

Issue was that only `adminRoutes` respected plan data. `mainNavRoutes`
and `primaryRoutes` did not follow the same filtering logic.

We can probably clean this up even further in the future, but didn't
want to extend the PR too much.

Also adds tests to validate the intended behavior.
2025-04-24 15:44:06 +01:00
Tymoteusz Czech
0e2f7374e5
Feat: update variants placement (#9832) 2025-04-24 16:01:35 +02:00
Jaanus Sellin
3774cf8b87
feat: separate constraint edit/view screens (#9836)
Separating constraing edit and view screens.
Next PR is to start using these.
2025-04-24 16:49:30 +03:00
Tymoteusz Czech
bffaab5560
chore: update OpenAPI frontend types (#9834)
For lifecycle-count endpoint
2025-04-24 11:42:27 +00:00
Tymoteusz Czech
a38bf8ea4c
feat: remove sort by user on flags overview (#9826)
We don't aggregate all users, for filters on flags overview. Let's drop this filter
2025-04-24 13:37:30 +02:00
Thomas Heartman
f6eb572a14
Prevent legal value selection from triggering form submit (#9831)
Use event.preventDefault to prevent the app from trying to submit the
legal values (or the strategy) form when you hit "enter" in the legal
values filter input.
2025-04-24 10:19:03 +00:00
Thomas Heartman
3bb54c5a9d
feat: 1-3652/legal value selector visual update (#9829)
Handles the visual changes for the legal value selector widget.

Before:
<img width="792" alt="image"
src="https://github.com/user-attachments/assets/0965d577-c4cf-4c1d-9fe7-f8f90d683988"
/>

After:
<img width="769" alt="image"
src="https://github.com/user-attachments/assets/33bdf40c-8bbb-4650-a6ba-c4b9e62f8cbd"
/>

I'm still working on improving the functionality of selecting from the
search input and not losing focus when you select/deselect an item (both
of these work (mostly) as expected on hosted, so we've introduced a
regression somewhere).
2025-04-24 12:17:05 +02:00
Jaanus Sellin
b05e12d028
feat: remove warning boxes for empty values (#9830)
We had issues, where when you selected the operator, these boxes were
jumping up. The problem was that the illegal value checker was marking
empty values as illegal also.

Now empty value is not included in illegal values.


![image](https://github.com/user-attachments/assets/13c6b21e-6b7e-40ac-bade-4496e65f10ba)
2025-04-24 11:41:14 +03:00
Nuno Góis
26f582db21
chore: add terraform to integrations (#9827)
https://linear.app/unleash/issue/2-2565/add-terraform-to-list-of-integrations

Adds Terraform to our integrations list.

It links to: https://docs.getunleash.io/reference/terraform

<img width="769" alt="image"
src="https://github.com/user-attachments/assets/28edb65f-a56d-4ffc-8ce3-cbb6bde6b19b"
/>
2025-04-23 16:11:18 +01:00
Jaanus Sellin
08c11664ce
feat: change requests, use new accordion list not legacy (#9825)
This should be final piece where old accordion is used.


![image](https://github.com/user-attachments/assets/854dfab9-4b05-4a14-bb17-0de49705079d)
2025-04-23 17:37:54 +03:00
Thomas Heartman
9977b3e0f8
fix: legal value selector chips and option updates (#9819) 2025-04-23 14:41:28 +02:00
Tymoteusz Czech
b179f86fb7
fix: stale flag status chip (#9821) 2025-04-23 12:02:58 +00:00
Jaanus Sellin
31dbef84f6
feat: move away from old accordion list, create/edit segment (#9820)
This is one path that is using old component, that we can update.


![image](https://github.com/user-attachments/assets/2f88eea9-651c-4bb2-9b00-d8c54e8e5aab)
2025-04-23 15:02:13 +03:00
Thomas Heartman
08d0907d89
Always show the value list + hide "add values" on non-free text entries (#9817)
Removes the condition to hide the value list if we use legal values. 

In doing so, I also realized that focus handling when you delete the
last item in the constraint values list doesn't work if the add values
button isn't there (which it shouldn't be for legal values and more). So
I've hidden the add values button when it doesn't do anythnig helpful
(or for cases where we don't have designs yet). In cases where you don't
have the add values button and you delete the last constraint value,
we'll move the focus to the "delete constraint" button (that was easier
than making sure we pass refs all the way down into the operator select,
but we can change that later).

To facilitate this (refs coming from the parent component), I refactored
the value list component to accept the add values widget as a child (and
extracted it to its own file).
2025-04-23 10:59:10 +02:00
Nuno Góis
dbe2f9b6bd
chore: remove demo plans dialog (#9816)
https://linear.app/unleash/issue/2-3531/remove-pricing-pop-up

We decided to remove this dialog in favor of linking directly to
https://www.getunleash.io/pricing
2025-04-23 08:55:49 +01:00
Jaanus Sellin
a2e39a05c4
chore: clean up old accordion code path (#9813)
Remove unused code.
2025-04-23 10:52:01 +03:00
Thomas Heartman
77d72ce5a1
Stop "add values" from closing on adding a value (#9815)
Instead of closing the "add values" popover when you add a value, we now
keep it open to facilitate rapid entry of multiple values. It already
clears successfully and adds the new value to the list, so it's actually
quite smooth to use from just the keyboard now!

Additionally, I propose using a `form` element for the add values
popover, because it really is just a tiny form. This also allows us to
use regular form handling instead for submission instead of checking
what key the user pressed. It also means we don't need to specify the
action in the button, because the form handles it.

There's a few more things fixed: 
- I've added a label (only visible to screen readers) to the input label
(as per standard a11y guidelines).
- When you add a value by pressing the "add" button, your focus returns
to the input field, so that you can just start typing out the next one.
this is handy if you submit by mouse click or by tabbing to the button
instead of just hitting enter inside the input field.
2025-04-23 09:32:37 +02:00
Mateusz Kwasniewski
da05c7be5c
chore: remove disable notifications UI (#9814) 2025-04-22 15:03:15 +02:00
Tymoteusz Czech
9d98d0771e
fix: strategy-reorder tooltip padding (#9811)
Tooltip is created a gap on the right side of flag overview page
2025-04-22 14:26:40 +02:00
Mateusz Kwasniewski
a22f5d0201
chore: adjust reminder days (#9810) 2025-04-22 12:29:07 +02:00
Thomas Heartman
150a044207
Use svg icons for case sensitivity button and give it better textual representation (#9808)
Light mode:
<img width="110" alt="image"
src="https://github.com/user-attachments/assets/dba5dd69-685c-4259-ba07-f50ad7c66833"
/>
<img width="265" alt="image"
src="https://github.com/user-attachments/assets/1ac2e71b-36f7-4a90-b96c-38f9aee4cb51"
/>

Dark mode:
<img width="311" alt="image"
src="https://github.com/user-attachments/assets/780c2110-2871-4634-b755-e3e0e3681826"
/>
<img width="285" alt="image"
src="https://github.com/user-attachments/assets/fdf0d790-eee6-4640-823a-758570c53b2f"
/>
2025-04-22 12:25:05 +02:00
Tymoteusz Czech
18850a5156
feat: move 'copy flag name' button (#9805)
- moved "copy flag name" action next to the flag name
- refactored this component into a separate file
- added "Ctrl+C" shortcut
2025-04-22 11:12:37 +02:00
Jaanus Sellin
bc7856a23a
feat: enter will select the first filtered value (#9807)
![image](https://github.com/user-attachments/assets/deff3204-100d-464f-8a87-f36759bdee3a)
2025-04-21 16:56:54 +03:00
Mateusz Kwasniewski
916ee157ab
refactor: pass feature to feature overview metadata component (#9803) 2025-04-18 14:24:48 +02:00
Mateusz Kwasniewski
e436cf72e6
feat: revert to production (#9802) 2025-04-18 11:42:43 +02:00
Mateusz Kwasniewski
78f0d02a84
feat: snooze reminder tracking (#9798) 2025-04-18 10:10:13 +02:00
Tymoteusz Czech
6403ae7f9b
feat: futureproofing last viewed page redirect (#9794)
You should not be able to break initial page redirect even if you set
'/' as target. It is not strictly needed in the current code path. This
will create a redirect loop only if you manually modify local storage.
It just makes this part safer if it is ever modified.
2025-04-17 17:40:04 +02:00
Nuno Góis
ee9b0a0193
chore: demo misc improvements (#9796)
https://linear.app/unleash/issue/2-2577/transition-screen-between-the-guides
https://linear.app/unleash/issue/2-2582/page-scrolls-in-back

Includes what should be the last batch of demo improvements at this
stage:

- Visually aligns the Back button for consistent layout
- Replaces “Start” with “Start tutorial” for new topics
- Updates topic titles for clarity and consistency
- Applies bold styling to all step titles
- Prevents page scroll when the step target is set to body
2025-04-17 15:56:59 +01:00
Nuno Góis
e6813a4910
chore: set new demo step titles (#9795)
https://linear.app/unleash/issue/2-3517/change-titles-on-various-steps-in-flow

Updates the titles of our demo flow steps as per the designs.

Took some liberties, as always, as e.g. some optional steps were not
covered by the designs.
2025-04-17 13:52:54 +01:00
Mateusz Kwasniewski
7285607cad
feat: remind me later about cleanup (#9790) 2025-04-17 14:06:26 +02:00
Tymoteusz Czech
d60ea1acd4
feat: redirect logic refactor (#9734) 2025-04-17 12:07:08 +02:00
David Leek
d406420223
chore: menu cleanups (#9792) 2025-04-17 11:59:35 +02:00
Tymoteusz Czech
5ef33b56d6
fix: import path for formatOperatorDescription (#9791)
Fixing build on main
2025-04-17 09:43:45 +00:00
Tymoteusz Czech
9d2174534f
refactor: deprecate old ConstraintAccordion and point to new version (#9613)
Code for constraint accordion was copy-pasted before previous
improvement. Old version is still in use for Segments. When we get to
improving constraint editing we should rebuild segments editing, without
use of this code.
2025-04-17 11:16:32 +02:00
Jaanus Sellin
923578c9ea
feat: add values chip styling (#9789)
Made chips coloring and paddings correct.


![image](https://github.com/user-attachments/assets/734072cf-b053-492a-ae27-134b1a530345)
2025-04-17 11:54:19 +03:00
Jaanus Sellin
9678054116
feat: styling of new add values (#9788)
1. Moved add values to the left.
2. Popover has new styling, as in designs


![image](https://github.com/user-attachments/assets/311670e1-7cb3-46ee-a6d7-fbbef9ac21f2)
2025-04-17 11:30:36 +03:00
Nuno Góis
d988b61764
chore: update demo final steps content (#9782)
https://linear.app/unleash/issue/2-2580/change-text-on-last-steps-of-guides-environment-toggle

Updates the demo final steps content as per the designs.

Took some liberties for the third topic, as it was always about gradual
rollout, not variants.
2025-04-17 09:01:11 +01:00
Mateusz Kwasniewski
b31845b63c
feat: archive reminder icon (#9781) 2025-04-16 16:07:33 +02:00
Nuno Góis
176e9d3187
chore: improve demo auth screen (#9780)
https://linear.app/unleash/issue/2-2575/adjust-text-login-screen

Adjusts the text for the demo auth screen.

Also took some liberties to improve the visual design of this page (at
least, IMO).

### Before


![image](https://github.com/user-attachments/assets/c17a4378-a940-4e5f-ad79-00ae4514cba6)

### After


![image](https://github.com/user-attachments/assets/c77d7d43-648f-40ab-9eb6-07156af22a7f)
2025-04-16 15:07:22 +01:00
Nuno Góis
f3a1da9d7e
chore: make demo back button variant text (#9772)
https://linear.app/unleash/issue/2-2576/make-back-button-less-dominant

Make demo "Back" button `variant='text'` so it's less predominant
visually.

### Before


![image](https://github.com/user-attachments/assets/d4378975-483a-4478-a7c9-9698a466f918)

### After


![image](https://github.com/user-attachments/assets/1349454b-73aa-465e-9a15-cd7f52cedb75)
2025-04-16 14:52:54 +01:00
Nuno Góis
d3d618c9ad
chore: improve demo finish CTA (#9773)
https://linear.app/unleash/issue/2-2578/change-cta-text-finished-screen

Improves the demo finished dialog CTA.
2025-04-16 14:48:12 +01:00
Mateusz Kwasniewski
a2a8c06003
feat: archive reminder (#9779) 2025-04-16 15:47:35 +02:00
Mateusz Kwasniewski
bf8a9b31b3
feat: cleanup reminder (#9776) 2025-04-16 15:01:07 +02:00
David Leek
ab594f5c29
feat: move admin menu into nav sidebar (#9774) 2025-04-16 14:58:37 +02:00
Nuno Góis
86cfb2f651
fix: demo flow step 4 is too eager on add strategy (#9771)
https://linear.app/unleash/issue/2-3512/bug-flow-2-enable-for-a-specific-user-doesnt-work

https://linear.app/unleash/issue/2-3513/bug-flow-4-adjust-variants-doesnt-work

Follow-up to #9770 

This "add strategy" step of `demoApp.step4` was a bit too eager and did
not properly wait for the accordion to be fully expanded. This change
makes it consistent with the same step in `demoApp.step2`, also
improving its "back" behavior.
2025-04-16 13:14:31 +01:00
Nuno Góis
fa4b09ffe5
fix: demo flow consistency with new flag page (#9770)
https://linear.app/unleash/issue/2-3512/bug-flow-2-enable-for-a-specific-user-doesnt-work

https://linear.app/unleash/issue/2-3513/bug-flow-4-adjust-variants-doesnt-work

Follow-up to #9765 

This should make the demo flow a bit more consistent with the new page
design.

The page seems a bit slower in general, so we're being a bit more
aggressive on the cleaning up of demo data to make it faster as well as
adding some delays in key steps of the flow.
2025-04-16 11:35:02 +01:00
Mateusz Kwasniewski
695c50b7d6
chore: cleanup reminder flag (#9769) 2025-04-16 11:25:50 +02:00
Jaanus Sellin
187f265680
feat: add values button now actually adds value (#9768) 2025-04-16 11:52:36 +03:00
Jaanus Sellin
e9c50a551f
feat: remove add values for legal values (#9767)
This removes the add values nicely.


![image](https://github.com/user-attachments/assets/8fb84b51-c842-4a56-af21-ff5b66772538)
2025-04-16 11:06:46 +03:00
Thomas Heartman
c1bb905146
Fix type issues (#9745) 2025-04-16 10:36:29 +03:00
Nuno Góis
1d94c261e6
fix: demo topics should work with new flag design (#9765)
https://linear.app/unleash/issue/2-3512/bug-flow-2-enable-for-a-specific-user-doesnt-work

https://linear.app/unleash/issue/2-3513/bug-flow-4-adjust-variants-doesnt-work

Fixes our demo topics by making them work with the new flag page design.

We achieve this by adding 2 new interactive steps in `demoApp.step2` and
`demoApp.step4` to expand the respective environment accordions. We mark
them as optional so they are not strictly required and will be skipped
if not found. This means the demo will be resilient to rolling back the
`flagOverviewRedesign` flag, for example.

We also mark 2 steps as optional: saving constraints in `demoApp.step2`
and `demoApp.step4`. It seems like we no longer have an extra button to
save the constraints after adding them, so by marking these steps as
optional the demo flow is able to proceed without breaking.
2025-04-15 16:18:33 +01:00
Tymoteusz Czech
06ade698e3
fix: search page filtered placeholder (#9763)
It's weird that we encourage to create new flags in the cleanup stage
2025-04-15 14:29:50 +02:00
Tymoteusz Czech
3fd74262bb
feat: search page - improved change request tooltip (#9750)
improved and tested tooltip for change requests and adjusted column width
2025-04-15 13:22:50 +02:00
Jaanus Sellin
01c1ec5c29
feat: strategy status as checkbox (#9760) 2025-04-15 13:11:11 +03:00
Christopher Kolstad
8380a7a532
fix(frontend): Now only shows average daily requests when viewing daily (#9758)
As reported by Ivar, there's no point in displaying the average daily
traffic when grouping monthly.
2025-04-15 08:38:56 +00:00
Nuno Góis
2c1ec41a07
fix: demo QR code (#9756)
https://linear.app/unleash/issue/CJUX-340/bug-qr-code-doesnt-work

Generated a new QR code using
[qrcode-monkey.com](https://www.qrcode-monkey.com/), following a similar
design to our previous one.

Unlike the previous QR generator, this one does **not** proxy the URL—so
the QR code will never break in the future. It’s also in SVG format,
allowing for infinite scaling without quality loss.


![image](https://github.com/user-attachments/assets/dbe22d45-aa53-403e-9ae1-fa4a9d7fd26f)
2025-04-15 09:06:25 +01:00
Mateusz Kwasniewski
e6d55ab17a
feat: display total count (#9753) 2025-04-14 14:30:21 +02:00
Jaanus Sellin
5b52a6e8d1
feat: predefined values more organized (#9752) 2025-04-14 14:22:32 +03:00
Tymoteusz Czech
417d3b80a4
feat: search page flag status with change requests (#9744) 2025-04-14 09:51:09 +02:00
Tymoteusz Czech
1b7cf6d97d
chore: update api types in frontend (#9748)
Get backend changes into frontend types
2025-04-11 20:00:09 +02:00
Jaanus Sellin
3b96bfb4ff
feat: description for stickiness selector (#9746) 2025-04-11 15:01:15 +03:00
Thomas Heartman
e9ec1db3b7
chore(1-3611): inline values list v1 (#9743)
Adds the easy parts of the inline values list: a list of chips that
shows you which values you have and that you can delete. You either
delete them by clicking the "clear" icon or by using del/backspace on
your keyboard.

If you use your keyboard we also handle switching your focus to the
appropriate element. By default, your browser may shift the focus to the
top of the window (which isn't very helpful). Instead, we handle it like
this:
- If you delete an item and there are more elements in the list: 
  - move the element to the next item if exists
  - if your element is the last item, move focus to the previous item
- if there are no more items in the list, move the focus to the Add
Values button

We still need to add the "add values" popover functionality. That's next
on the agenda.

Additionally, this switches how the containing flex container positions
its items along the cross axis (vertically) to "flex-start" instead of
"center". Because the values list can grow to multiple lines, it would
shift the "delete constraint" button and the constraint picker to the
middle of the expanded constraint. Now, instead they stay aligned to the
top. This causes a slight alignment issue with the button (due to the
invisible padding), but I don't want to look at that before the rest of
this is complete and we know how it all fits together. You'll notice
that the spacing between elements in that top row is also off anyway
(look at the value list being smushed up against the case sensitive
icon), so there's more work to do.

<img width="716" alt="image"
src="https://github.com/user-attachments/assets/225fcab8-03e4-46e3-92d4-82912eb40d46"
/>

Focus styles:

<img width="190" alt="image"
src="https://github.com/user-attachments/assets/6b07ab25-0a67-493c-9cac-839932b0d654"
/>

<img width="195" alt="image"
src="https://github.com/user-attachments/assets/9d5b323e-bf65-4eca-9008-a45ce0139a2b"
/>


Hover styles:
<img width="96" alt="image"
src="https://github.com/user-attachments/assets/f19e1945-d2be-4e87-8005-76cb6beb1f50"
/>
2025-04-10 15:50:51 +02:00
Tymoteusz Czech
1043eb8f03
feat: flag lifecycle status - first pass (#9736)
Resolving "status" column for flags overview page
2025-04-10 12:02:25 +02:00
Jaanus Sellin
67c0ffa1ab
feat: segment chip recoloring (#9742) 2025-04-10 12:51:09 +03:00
Jaanus Sellin
5d64d0ff4b
feat: styling of info box for release plans (#9741) 2025-04-10 12:22:07 +03:00
Jaanus Sellin
49a1dac2c9
feat: targeting info box new styling (#9740)
Updated styling of info box


![image](https://github.com/user-attachments/assets/983339b7-102d-440e-a937-4972d04496c9)
2025-04-10 11:20:02 +03:00
Ivar Conradi Østhus
3b84db7d61
fix: remove custom refresh interval for UnleashClient 2025-04-10 09:56:40 +02:00
Ivar Conradi Østhus
e63b28c1b8
feat: use Unleash React SDK in Admin UI (#9723)
In this PR I integrate the Unleash React SDK with the Admin UI. 

We also take advantage of Unleash Hosted Edge behind the scenes with
multiple regions to get the evaluations close to the end user.
2025-04-10 08:26:30 +02:00
Thomas Heartman
d5af58ce0e
fix: wrap env data before truncating env name. (#9733)
Solves an issue where the new buttons would potentially obscure the
entire name of the env:


![image](https://github.com/user-attachments/assets/0bb1e7e9-90da-414e-bd70-eef264ac1867)

 
Now, instead of using grid and container queries to find the right point
to break, we're using flex to always wrap before needing to truncate the
environment name. The name will still truncate if necessary.

Why didn't we do this originally? I ... couldn't think of a way to make
flex work in a 2D layout, but the `width: 100%` property seems to do the
trick 😄


![image](https://github.com/user-attachments/assets/fa81bf5b-3be0-4afa-8fc3-7a5b5ffeeefc)

PS: the buttons only stack when they have to. They stay single-line for
as long as possible. (just in case you were wondering).
<img width="711" alt="image"
src="https://github.com/user-attachments/assets/a9f85118-5b72-4618-a91b-f05c9d520663"
/>
2025-04-09 12:24:37 +00:00
Jaanus Sellin
8da5fe6811
feat: strategy menu interaction between two dialogues. (#9732) 2025-04-09 15:14:45 +03:00
Thomas Heartman
48b9be709e
Chore(1-3598): new constraint edit design iteration 1 (#9727)
Implements the first step towards implementing the new design for
constraint editing. All the edit functionalities work as and when you do
them now, but there is no validation of the values you put in that's
happening.

The inverted / not inverted button and the case sensitivity button are
placeholders. They should use icons and have proper descriptions of what
they do. I'll do that in a follow-up.

The way to enter values is currently always in the section below the
main controls. Again, more work on this is coming.

Current look:

With case sensitive options:
<img width="769" alt="image"
src="https://github.com/user-attachments/assets/bfdfbac1-cc95-4f26-bf83-277bae839518"
/>

With legal values:
<img width="772" alt="image"
src="https://github.com/user-attachments/assets/14f566cc-d02a-46dd-b433-f8b13ee55bcc"
/>
2025-04-09 14:08:04 +02:00
Mateusz Kwasniewski
f26bf2b8d1
feat: lifecycle column text (#9731) 2025-04-09 13:44:32 +02:00
Jaanus Sellin
02aadfe1bb
feat: update strategy window styles, extract old and new components (#9730) 2025-04-09 13:41:18 +03:00
Jaanus Sellin
a92c79e2dd
feat: styling of AND operator in strategies (#9726) 2025-04-09 11:00:05 +03:00
Tymoteusz Czech
5647fc916e
feat: adjust search page columns (#9722)
New columns for search page
- improved "name" with filtering by type and tag
- lifecycle
- created by (avatars) with filtering
2025-04-09 09:50:30 +02:00
Jaanus Sellin
827b8f274a
chore: make popover center of screen (#9725) 2025-04-09 09:41:30 +03:00
Tymoteusz Czech
28a69afe63
feat: adjust columns for a search page refactor (#9709)
- Change "Project ID" to Project name column in search
- Remove certain columns that are not present in new design
2025-04-08 14:57:50 +02:00
Jaanus Sellin
45a0ddd2a5
fix: fix hover on release template card (#9721)
For some reason, using template literals do not work after its in
enterprise repo. I will try something that matches more over codebase
style.
2025-04-08 15:55:07 +03:00
Mateusz Kwasniewski
1e027dcf4f
feat: adjust filter UI (#9720) 2025-04-08 14:32:30 +02:00
Mateusz Kwasniewski
f8e75e5250
feat: remove archived from filters (#9719) 2025-04-08 13:22:53 +02:00
Jaanus Sellin
84dbae20e8
feat: remove + from the segment dropdown (#9714) 2025-04-08 14:18:01 +03:00
Jaanus Sellin
6c74c994aa
feat: release plan review dialogue (#9712) 2025-04-08 12:24:09 +03:00
Tymoteusz Czech
1930c0f408
fix: update link text for archived feature navigation (#9698)
If you try to visit an archived flag, you're told you can find it on the
project archive page, but that page isn't visible by default anymore.
This is an update to take you to the project overview with a filter for
archived flags instead.
2025-04-08 11:03:01 +02:00
Mateusz Kwasniewski
e76d04a7ad
feat: export button in flags overview (#9715) 2025-04-08 10:23:02 +02:00
Mateusz Kwasniewski
b120c97717
feat: lifecycle filters UI (#9713) 2025-04-08 10:04:07 +02:00
Tymoteusz Czech
1a85b46acc
feat: rename search page and change icon (#9706)
Behind flagsReleaseManagementUI flag
2025-04-07 15:49:44 +02:00
Thomas Heartman
5e35a0fa22
chore: Set up the basis of the new constraint editing component. (#9701)
This PR creates/steals the logic and basic components that we need for
the new constraint editing design and shows it instead of the old one if
the flag is on.

The interface needs a lot of work, but this essentially wires everything
up so that it works with the API on direct editing:

<img width="781" alt="image"
src="https://github.com/user-attachments/assets/97489a08-5f12-47ee-98b3-aefc0b840a2b"
/>

Additionally the code here will need a lot of refactoring. This is a
first draft where I've yanked all the constraint editing logic out of a
nested hierarchy of components that handle validation and lots more. I
expect to clean this up significantly before finishing it up, so please
excuse the mess it's currently in. It turns out to have been lots and
lots more logic than I had anticipated.

This is just a PR to get started, so that the next one will be easier to
work on.
2025-04-07 14:50:42 +02:00
Thomas Heartman
6ea823f011
fix: restore focus style to the env switch (#9707)
Removes the "disableRipple" prop from the FeatureToggleSwitch component,
thereby restoring its focus styles, so that keyboard users can see where
their focus is at.

I don't know the reason this was added originally (the PR doesn't say
anything about it), but the prop changes nothing when hovering with the
mouse, but it does remove focus styles for keyboard navigation.

By removing it, we can bring the focus style back. As far as I can tell,
there's no other difference between the two states.

Both of these screenies have focus on the toggle, but in the first
screenie there's no way to tell.

With the prop:
<img width="397" alt="image"
src="https://github.com/user-attachments/assets/b9a5d764-ec5a-4d3b-b79d-0b52d7bd6891"
/>


Without the prop:
<img width="445" alt="image"
src="https://github.com/user-attachments/assets/3c95c7a6-91de-4ed2-9942-e9fc794e9d40"
/>

Because the component is used in multiple places, this also fixes this
issue in the project flag list (and maybe elsewhere too):
<img width="336" alt="image"
src="https://github.com/user-attachments/assets/6582c58b-fabe-40ce-a141-06b22189a462"
/>
2025-04-07 15:50:07 +03:00
Jaanus Sellin
58d123e998
feat: release plan hover buttons (#9703) 2025-04-07 11:32:31 +03:00
Christopher Kolstad
bd11ece873
fix: consumption warning is either/or not and 2025-04-04 11:09:48 +02:00
Christopher Kolstad
32ae7bc7d1
we don't have historical data available for purchased traffic (#9700)
So this PR removes the purchased dt point, as well as the total
available. Using the same check our overageCalculation does (it also
only works on current month)
2025-04-04 11:08:20 +02:00
Thomas Heartman
6b5c29a6e6
chore: Add flag for add/edit strategies (#9699)
Adds a flag for the edd/edit strategies updates.
2025-04-04 10:18:05 +02:00
Gastón Fournier
2748ced8e2
feat: only admin can fetch license (#9697)
Non admins can not fetch the license they're still allowed to check it
but not to get it
2025-04-03 16:26:36 +02:00
Tymoteusz Czech
821851a2f3
fix: depenency name truncator (#9696)
![image](https://github.com/user-attachments/assets/ce8d1dc4-d03a-4b42-aa30-c5cae3b6f53c)
2025-04-03 13:45:25 +00:00
Christopher Kolstad
f20ea86c61
feat: added network traffic bundle (#9691) 2025-04-03 14:37:07 +02:00
Thomas Heartman
07d11c7a87
Refactor: cleaner project status modal link handling (#9694)
Removes random booleans, uses more explicit functions.
2025-04-03 12:29:03 +00:00
Jaanus Sellin
9a4eb059e6
feat: strategy selector screen updates (#9692) 2025-04-03 14:51:00 +03:00
Thomas Heartman
a02fe7a245
fix: project status modal links don't work (#9693)
Fixes a bug where project status modal links wouldn't work.

The reason they didn't work is because we modified the query params on
modal close, and because we manually close the modal when you click a
link (because otherwise it'd stay open when you navigated to other
project pages), we inadverdently reset the URL.

I'm not entirely sure why setting the search params would modify the URL
itself, but I'm guessing that's related to the implementation.

One way to solve this is to indicate whether we're closing the modal
because a link was clicked or not, and only modify the query params if
that is not the case.
2025-04-03 13:13:18 +02:00
Thomas Heartman
3447b03e1c
Fix(1-3564)/hide project owner if system (#9686)
Hides owner avatars in cases where the owner type is "system". Touches
dashboard and project card owners.

Back when all projects required owners, we introduced the new project
cards that have the owner listed in the footer. Because, theoretically,
you weren’t allowed to create projects without owners, the only project
that should ever be without an owner was the default project. So we
thought it made sense to say that it was owned by the system.

But now that owners are optional, that doesn't necessarily make sense
anymore. As such, we'll just hide their avatars to begin with.

<img width="726" alt="image"
src="https://github.com/user-attachments/assets/950cd909-c891-48f1-9ef7-fd74922a5990"
/>

<img width="1497" alt="image"
src="https://github.com/user-attachments/assets/f4d213f5-febb-46f8-89f0-899e77652e07"
/>

Because the components expected the avatars to be there, we now need to
set an explicit min-height on them, so that they don't collapse.
Luckily, we can use the default avatar height (and also force that so
that they change in tandem) and use that in both places.
2025-04-03 10:43:58 +02:00
David Leek
4344c94a90
chore: remove z-index from sticky admin menu as its probably not needed (#9690) 2025-04-03 10:24:26 +02:00
David Leek
b9a7c0cda6
feat: command bar admin menu improvements (#9689) 2025-04-03 10:23:45 +02:00
Thomas Heartman
72e71b714d
fix: link to "view more insights" from dashboard goes to status modal (#9684)
Updates the link from the project dashboard page to take you to the
project status modal instead of the old insights page.

We didn't have a way to auto-open the modal before, so I added a query
param to control it.
2025-04-02 13:57:37 +00:00
Thomas Heartman
130b3869cc
Fix: lifetime API command doesn't update. (#9685)
Seems the previous value was hardcoded. Now we check the values you set
instead.
2025-04-02 15:35:29 +02:00
Tymoteusz Czech
e436ef29f1
fix: add Project and Playground icons for command bar (#9677)
Updating `IconRenderer` component in the `NavigationSidebar`. It will fix icons not showing up for command bar search results.
2025-04-02 15:31:55 +02:00
Jaanus Sellin
89724209cd
feat: new styling for strategy selector (#9683) 2025-04-02 14:55:36 +03:00
Thomas Heartman
645b005f29
Fix(1-3553): fix focus styles and tab navigation for segments + constraints (#9655)
Fixes a few small focus styling and tab navigation issues for the new
segments + constraints.

Before:
The segment acc header was tabbable even though you can't do anything
with it (by mouse or by keyboard)

![image](https://github.com/user-attachments/assets/de5c07ee-e55c-45f4-bd6e-3d978a0a51ca)

The focus color would stay even when you're focusing stuff inside the
accordion

![image](https://github.com/user-attachments/assets/1a75038b-256f-43b5-95ed-0a3d455d17f8)

Constraint items have focus styles that exceed the accordion borders,
causing a weird squaring effect:

![image](https://github.com/user-attachments/assets/638c9f5d-daf0-4570-8323-49141183dad8)

After:
The segment acc header isn't reachable by tab anymore.

The segment acc header doesn't change its background color on elements
inside getting focus:

![image](https://github.com/user-attachments/assets/4756e8b0-b461-49df-bf3e-ec8d26142877)

The constraint item has rounded corners for focus styles too:

![image](https://github.com/user-attachments/assets/fccf94e4-8b7a-4823-bcf5-24a0fe046cf7)

![image](https://github.com/user-attachments/assets/90020d85-990c-41de-9acb-ab2cc81a8f66)
2025-04-02 13:37:16 +02:00
Jaanus Sellin
b44ac069ae
feat: new feature strategy menu (#9678) 2025-04-02 09:00:34 +00:00
David Leek
18346d1107
feat: admin menu: unleash logo in header - links to dashboard (#9676) 2025-04-02 08:34:43 +02:00
Thomas Heartman
f6e786a6c0
Remove caseInsensitiveInOperators flag (#9670)
The flag has never made it out of dev, and has not been turned on
consistently since 2023. There was a project for it, but we have since
abandoned it.
2025-04-01 14:57:32 +02:00
Tymoteusz Czech
6e947a8ba6
fix: linter rule for hooks (#9660) 2025-04-01 14:33:17 +02:00
David Leek
a9490e6fe4
chore: admin menu main layout tweaks (#9671) 2025-04-01 14:16:26 +02:00
Fredrik Strand Oseberg
7545f5af60
refactor: change colors (#9672)
This PR fixes incorrect colors chosen from the theme. It now matches the
figma files.
2025-04-01 13:24:40 +02:00
Fredrik Strand Oseberg
c75779e677
refactor: colorpicker (#9668)
This PR refactors the color picker so we stick to one set of colors
instead of changing available colors when theme changes. Colors picked
also work in dark theme and is aligned with UX.
2025-04-01 12:32:13 +02:00
David Leek
c21ed3ed5e
chore: add flags to control network route links from menu (#9667) 2025-04-01 11:18:32 +02:00
David Leek
f7dbfe1162
chore: admin menu enterprise badge (#9656) 2025-04-01 09:13:40 +02:00
Thomas Heartman
89f63285a0
Fix: Move hooks to before we bail if the flag is off. (#9659)
This fixes the a react crash when we render more/fewer hooks than on the
previous render if the flag state changes.
2025-03-31 13:59:09 +00:00
Gastón Fournier
eae7535bfc
feat: remove access overview flag making it GA ready (#9654)
This is exposing information we already have about permissions in a UI
that should help users have an overview of the permissions of a user
with regards to projects and environments
2025-03-31 14:33:38 +02:00
Tymoteusz Czech
ce230ba96b
Fix: separate segment and constraint accordions (#9652)
Segment accordion should not share state with constraint accordions inside
2025-03-31 12:11:34 +00:00
Mateusz Kwasniewski
1f1b00c38f
chore: fixing typo pre-defined (#9651) 2025-03-31 13:58:22 +02:00
Fredrik Strand Oseberg
aa6c422165
Feat/tag type frontend display (#9630)
Add frontend for displaying tag colors
2025-03-31 11:55:49 +02:00
David Leek
5a55181561
feat: show only link to /admin in mobile menu (#9647) 2025-03-31 08:37:15 +02:00
Jaanus Sellin
b55732d719
fix: tooltips not working after base element is also clicked (#9629) 2025-03-31 08:59:08 +03:00
Thomas Heartman
398246c3ec
Chore/remove badges from tab order (#9643)
Makes badges not tabbable by default instead of tabbable by default.
Turns out, badges aren't tabbable by default and they never were until I
made them as much (for some reason that I don't quite understand now).

Anyway, I've gone through the list of uses for the Badge element and
made any element that should be reachable by tab either have an explicit
tab index (if it's within a tooltip, for instance), or be wrapped in a
Link (instead of having an on-click handler). The two places I've
wrapped it in a link, I've also gone and changed the item group to be a
list (for HTML semantics). I've also updated some spacing for the
profile tab.

Application list (one is before, one is after. don't remember which is
which; it's now a list):

![image](https://github.com/user-attachments/assets/66fdabf7-7a80-46cb-b302-6242c16ad43e)

![image](https://github.com/user-attachments/assets/660506ce-0ec4-417f-bb3a-3fbf23d5591c)


Profile page (now a list + improved spacing)

Before:

![image](https://github.com/user-attachments/assets/17a841e6-d500-410e-8f11-4c78ca0e9e12)

![image](https://github.com/user-attachments/assets/38a60e67-682e-45b5-9312-f4c2013192bb)

After:

![image](https://github.com/user-attachments/assets/602f3d06-0b7e-4a10-9958-fb565fb6d06b)


![image](https://github.com/user-attachments/assets/67c7d39c-cdf9-4586-98d9-63ceff4fd867)
2025-03-28 15:05:32 +00:00
Thomas Heartman
fc0383620b
fix: focus styles for env headers (#9635)
Adds focus styles to the env accordion header only when the focus is on
the header itself (not on the env toggle inside the header). The focus
style is consistent with what we do for other accordions (dashboard,
milestones).

Middle one is focused:

![image](https://github.com/user-attachments/assets/df87bd99-8fe2-4093-afd8-4cbce9f2c943)


Focus is on the toggle inside the top one (yeh, we should have better
focus styles for toggles; but that's not for now):

![image](https://github.com/user-attachments/assets/2a046d4c-8585-4021-a58e-32ef81b1f701)

Open and focused: 

![image](https://github.com/user-attachments/assets/fdbb5bda-4be5-4354-b213-5e2c7a59eb59)

Getting the consistent background for the header when it's open is a
little tricky because the accordion container and summary are split into
different files. ~~This first iteration used a class name for the
specific header (because envs can have multiple accordion headers inside
them, e.g. release plans) and setting a CSS variable in the summary, so
that the background matches.~~ I found out that I only need to set it in
the parent anyway 😄

Without it, you get this (notice that there is a little white outside
the lower corners):

![image](https://github.com/user-attachments/assets/4d71d73c-7f45-46b5-811d-c6e36f9be5ce)
2025-03-28 15:59:25 +01:00
Christopher Kolstad
14c8b97441
task: added a hook for cleanly deciding new or old admin menu (#9645) 2025-03-28 14:45:09 +01:00
David Leek
5da9f75014
chore: fix weird alignment issue with main content and admin menu (#9636) 2025-03-28 13:22:13 +01:00
Tymoteusz Czech
db1ec7ffa6
fix: feedback button (#9644)
Fix alignment of "add strategy" & "add template" buttons

---------

Co-authored-by: Simon Hornby <sighphyre@users.noreply.github.com>
2025-03-28 11:48:24 +00:00
Simon Hornby
8793d9e632
chore: swap release template instruction svgs for pngs (#9642) 2025-03-28 10:47:36 +02:00
David Leek
78dfbde007
fix: Back to Unleash onClick+useNavigate instead of href (#9641) 2025-03-28 09:34:48 +01:00
David Leek
39755c7f19
fix: useLocation instead of browser location for resolving pathname (#9640) 2025-03-28 08:54:21 +01:00
Simon Hornby
7f98709730
fix: fixes an issue where the new feedback button on the config strategy pane (#9638) 2025-03-27 16:43:14 +01:00
Mateusz Kwasniewski
f97924eb36
feat: enforce change request settings in create project dialog (#9637) 2025-03-27 16:15:09 +01:00
Simon Hornby
e53e2ca0c7
chore: ux feedback on release templates (#9634)
Makes two small changes to the release template UI based on walkthrough
feedback with UX

1) The how-to descriptions for creating release plans won't get hidden
when the user has created release plans. We think too much is better
than too little. At a later point we'll push users to documentation more
aggressively
2) The warning for when the user taps the "Use template" button now has
a line break to give it some breathing room and will render anchored to
the bottom left of the originating button rather than covering it
2025-03-27 16:31:47 +02:00
Simon Hornby
b5e52a6160
chore: feedback link on feature strategy (#9633)
Adds a new link on the feature strategy that points to the feedback link
(pops out new window, only renders if release plans are enabled)

![image](https://github.com/user-attachments/assets/bd965b88-4d95-4e75-a931-af365fe777dc)

---------

Co-authored-by: Gastón Fournier <gaston@getunleash.io>
2025-03-27 15:19:14 +02:00
Mateusz Kwasniewski
53a4f61260
feat: enabled change requests reacting to available environments (#9631) 2025-03-27 13:46:29 +01:00
Tymoteusz Czech
cf053470e5
feat: improve constraints item on small screens (#9609)
Fixing constraint operator item, items alignment and padding for better presentation on mobile devices.
2025-03-27 13:33:25 +01:00
David Leek
f7c04cc2cb
feat: admin menu for mobile (#9626) 2025-03-27 13:28:44 +01:00
Mateusz Kwasniewski
6b793677b9
feat: preselect change request settings in create project (#9625) 2025-03-27 12:17:21 +01:00
Mateusz Kwasniewski
cc0348beba
feat: show environments with change requests (#9628) 2025-03-27 12:16:04 +01:00
Simon Hornby
47c6f43865
chore: add some getting started info and images when you have no release plans (#9627) 2025-03-27 12:58:56 +02:00
Thomas Heartman
138e93c41a
chore: drag-n-drop tooltip for strategies (#9623)
Implements the drag-n-drop tooltip the first time the user sees a
strategy drag handle on the feature env overview. It uses React Joyride,
which is the same system we use for the demo.

The design is a little different from the sketches because I couldn't
find a quick way to move the content (and the arrow) to be shifted
correctly.

If the demo is also active the first time a user visits a strategy page,
it'll render both the demo steps and this, but this tooltip doesn't
prevent the user from finishing the tour. It might be possible to avoid
that through checking state in localstorage, but I'd like to get this
approved first.

The tooltip uses the auth splash system to decide whether to show the
tooltip, meaning it's stored per user in the DB. To avoid it
re-rendering before you refetch from the back end, we also use a
temporary variable to check whether the user has closed it.

Rendered:

![image](https://github.com/user-attachments/assets/5912d055-10d5-4a1d-93f4-f12ff4ef7419)

If the tour is also active:

![image](https://github.com/user-attachments/assets/b0028a0f-3a0f-48aa-9ab9-8d7cf399055a)
2025-03-27 11:16:37 +01:00
Simon Hornby
6aae9be19c
chore: add a message stating no templates when there aren't any (#9624) 2025-03-27 11:34:45 +02:00
Simon Hornby
01f3af4bda
chore: whats new dialog (#9622)
Adds a new dialog option for whats in new in Unleash items. This can be
tiggerred by setting `popout` to true when configuring the items.

To do this without setting fire to the code, I've also needed to
refactor the NewInUnleash components:

- NewInUnleashItem becomes a dumb item that decides if a dialog or
tooltip should be rendered and controls that render state
- The child item in NewInUnleashItem has been moved out into
NewInUnleashSideBarItem, which feels a bit better since that is a
distinct UI element from the popup
- NewInUnleashDialog now exists, which is a dialog version of the popup.
Meaningfully different to ask for a new component

## Screenshots

![image](https://github.com/user-attachments/assets/33d3e7f5-9178-4d2d-9355-866814e58164)
2025-03-27 11:30:24 +02:00
Mateusz Kwasniewski
1bd328f4e1
feat: create and edit environment required approvals (#9621) 2025-03-26 15:54:46 +01:00
David Leek
07a4106f48
feat: admin menu (#9617) 2025-03-26 15:08:56 +01:00
Thomas Heartman
328c5368ed
Hide env metrics when an env has no strategies. (#9620)
Changes the logic in when we display metrics for an env to not showing
 them unless we have strategies.


![image](https://github.com/user-attachments/assets/83dc2465-b3fb-49d1-a9fe-886fd16fea25)
2025-03-26 13:43:12 +00:00
Jaanus Sellin
18d1a6c1bc
feat: show seats used only for full enterprise customers (#9618) 2025-03-26 14:53:51 +02:00