1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-11-10 01:19:53 +01:00
Commit Graph

4713 Commits

Author SHA1 Message Date
Nuno Góis
8ba35507cd
chore: add edge instances to instance stats (#10839)
https://linear.app/unleash/issue/2-3979/add-edge-instances-to-self-reported-instance-stats

Adds edge instances to instance stats.
2025-10-22 16:40:43 +01:00
Mateusz Kwasniewski
0919b7b925
refactor: update/create progression to change progression (#10843) 2025-10-22 15:40:30 +02:00
Fredrik Strand Oseberg
866441a1b6
feat: change request progression view (#10835) 2025-10-22 12:27:24 +02:00
Thomas Heartman
b9d81e5f59
chore: align text to cell top (#10837)
First part of UI refactoring for the change requests table: align
content to the top of the cell to facilitate scanning the table.

To facilitate this, I've mad the paginated table stylable by adding a
class name.

Before:
<img width="1810" height="1500" alt="image"
src="https://github.com/user-attachments/assets/febc9471-5d57-4afa-a9b0-0d22044fcd92"
/>

After:
<img width="1809" height="1326" alt="image"
src="https://github.com/user-attachments/assets/e6aea2e9-0f1d-42f9-bd09-ad7317acbd4e"
/>
2025-10-21 14:08:03 +02:00
Nuno Góis
1b60ed5df8
chore: show edge instances in license info (#10810)
https://linear.app/unleash/issue/2-3981/show-edge-instances-in-license-information-in-unleash

Show edge instances in license info.

Adapts to new logic, so resources are only shown if they are present.
2025-10-20 14:49:41 +01:00
Mateusz Kwasniewski
f37fde2a27
feat: release plan cr conflict (#10831) 2025-10-20 15:39:06 +02:00
Thomas Heartman
ca4ec203c6
feat: display median calculation (#10763)
Adds the median calculation to the new flags in production widget and
allows the median to take batched data into account:

<img width="1288" height="530" alt="image"
src="https://github.com/user-attachments/assets/5052dad1-03fa-4ce6-8626-ff4f6a5d818f"
/>

To achieve this, it was necessary to extract the data aggregation method
from the NewProductionFlagsChart component, so that we could use the
data (to calculate the median) at a higher level in the tree. Because
the data is now passed around outside of the chart component, I've also
updated the `ChartDataResult` type to a proper union type that contains
the state and the data.
2025-10-20 11:49:42 +00:00
Thomas Heartman
b18b128e52
feat: add median per week calculation for the new flags in production widget (#10829) 2025-10-20 12:17:18 +02:00
Mateusz Kwasniewski
0fda3e7cf1
feat: delete milestone progression with CR (#10828) 2025-10-17 14:49:03 +02:00
Jaanus Sellin
c8ca11aebb
feat: add billing invoices skeletons (#10827)
Since we load directly from Stripe, it takes a little time. Good to have
skeletons.

<img width="2151" height="1587" alt="Screenshot from 2025-10-17
15-32-10"
src="https://github.com/user-attachments/assets/be767ea1-b95f-4ef3-abf6-e8302e7092fd"
/>
2025-10-17 15:40:36 +03:00
Jaanus Sellin
faad097915
feat: overages should be rouned down to nearest integer (#10826) 2025-10-17 15:09:52 +03:00
Jaanus Sellin
adb1d200ea
feat: only show detailed billing for consumption and payg (#10825) 2025-10-17 14:11:19 +03:00
Jaanus Sellin
3f9a726db6
refactor: move invoice logic into separate file/function (#10824)
Extract calculateEstimateTotals and some utility functions.
2025-10-17 14:11:14 +03:00
Jaanus Sellin
aec793ddc7
feat: calculate the esimtate invoice numbers (#10823) 2025-10-17 13:24:09 +03:00
Gastón Fournier
91ecf2fabd
chore: remove uuid from the frontend (#10808)
Frontend only of: https://github.com/Unleash/unleash/pull/10806

## About the changes
This PR drops the uuid package from node modules and replaces it with
standard randomUUID usage that is available from 14.17 onwards, and we
have a minimum requirement of node 20 at Unleash.

[Node.js
crypto](https://nodejs.org/api/crypto.html#cryptorandomuuidoptions)
[Web
crypto](https://developer.mozilla.org/en-US/docs/Web/API/Crypto/randomUUID)

Co-authored-by: Anastasiia Hladina <anastasiia.hladina@gmail.com>
2025-10-17 10:31:48 +02:00
Jaanus Sellin
e9d2b30603
feat: add taxes to invoices (#10821) 2025-10-17 09:49:09 +03:00
Fredrik Strand Oseberg
795b674133
feat: add change request support for updating milestone progressions (#10819) 2025-10-16 16:52:02 +02:00
Jaanus Sellin
022226dd43
chore: generate orval (#10820) 2025-10-16 16:11:39 +03:00
Tymoteusz Czech
b81691b89e
feat: invoices ui improvements (#10813) 2025-10-16 12:30:01 +00:00
Fredrik Strand Oseberg
045ef5a20e
refactor: consolidate release plan change request dialogs (#10817) 2025-10-16 13:55:52 +02:00
Thomas Heartman
9096340afb
refactor: split the stat card widget into its own component (#10815)
Prepares it for being shared between the new flags in production and the
archived to created ration sections.

The card in question is this one: 
<img width="310" height="177" alt="image"
src="https://github.com/user-attachments/assets/66549601-36cd-4ccc-b175-79bd049ed1d4"
/>
2025-10-16 13:53:32 +02:00
Fredrik Strand Oseberg
154dc6f5eb
feat: add change request support for milestone progressions (#10814) 2025-10-16 11:57:28 +02:00
Thomas Heartman
2cc1bf978b
chore: add todo note with flag to remember a refactor (#10811)
So that we remember to revisit this line when we remove the flag.
2025-10-16 09:53:58 +02:00
Thomas Heartman
07c947949e
fix: populate all weeks in charts (#10800)
When selecting a date range, the chart now shows you the entire range,
even if there's only data for parts of it.

This ensures that both the new flags in production chart and the created
vs archived chart show the same period and not two different ones (other
charts can be updated later).

Before:
<img width="2356" height="1536" alt="image"
src="https://github.com/user-attachments/assets/11912a2f-7a68-4405-acfa-d98d0eb69cf8"
/>

After: 
<img width="1294" height="963" alt="image"
src="https://github.com/user-attachments/assets/e932665c-9f7c-4b4e-9e14-34a1e6e71a69"
/>

It also ensures that the 4 week batching works the same for both charts.

For line charts, only the dates with data will be rendered as a line.
For the bar chart, dates without data can still be hovered and show
empty (zero) data.

<img width="1341" height="447" alt="image"
src="https://github.com/user-attachments/assets/531266ca-02e3-4402-9b29-ce4259274e0c"
/>


<img width="1304" height="448" alt="image"
src="https://github.com/user-attachments/assets/42a0bbe9-c701-4f3f-8b10-9ef7017a9b9f"
/>

Also prevents us from showing the wrong period if there is no data for
the selected project

Before:
<img width="1292" height="960" alt="image"
src="https://github.com/user-attachments/assets/6d61a653-7bee-43d9-9c25-5d5bdb29a803"
/>


After:
<img width="1295" height="507" alt="image"
src="https://github.com/user-attachments/assets/91994094-cd0d-495e-a41f-f92b6b7d72c9"
/>

Finally, it happily graphs multiple projects at their individual data
points in time:

<img width="1314" height="537" alt="image"
src="https://github.com/user-attachments/assets/d382d919-fda4-4c35-8d8e-2e66dd3bed66"
/>
2025-10-16 09:52:33 +02:00
Nuno Góis
4ff41fa6a9
chore: add warning about release plans in import-export (#10805)
https://linear.app/unleash/issue/2-3965/add-a-note-if-were-exporting-that-we-dont-understand-release-plans-in

Adds a warning about release plans in import/export.

It's not trivial to know every flag that will be exported in every
scenario, and whether they have release plans, so our logic here is
"have you configured release templates?"

<img width="706" height="516" alt="image"
src="https://github.com/user-attachments/assets/68ba8618-9887-491c-b46e-256b45700d74"
/>

<img width="732" height="503" alt="image"
src="https://github.com/user-attachments/assets/086e37d4-78ae-4647-93a2-5d1845c2758a"
/>
2025-10-15 14:44:30 +01:00
Nuno Góis
f3ab70aeca
chore: add alert about release plans when cloning flag (#10802)
https://linear.app/unleash/issue/2-3966/cloning-a-feature-will-not-clone-release-plans

Adds an alert when cloning a feature flag with a release plan.

Requires the `featureReleasePlans` feature flag.

<img width="1162" height="568" alt="image"
src="https://github.com/user-attachments/assets/325db586-14b9-4ce4-9d7c-6f680017c6ac"
/>
2025-10-15 14:17:34 +01:00
Mateusz Kwasniewski
10c30751d3
feat: improve permission messaging (#10804) 2025-10-15 14:33:53 +02:00
Jaanus Sellin
e83d92975c
fix: now showing either payg or consumption (#10803)
1. Make it show either payg or consumption.
2. Add paid tag.
2025-10-15 10:32:51 +00:00
Jaanus Sellin
bffec9bc4d
feat: align billing page design with figma (#10801)
1. Splitting main row and usage row, as they have so much different
logic already now.
2. Main lines, keep only included, remove quantity
3. Add correct headers for usage lines
4. Add current consumption also as number


Old design
<img width="1502" height="906" alt="image"
src="https://github.com/user-attachments/assets/ab4fdca9-1a04-4381-88a6-9ce643f71d78"
/>

New design
<img width="1502" height="906" alt="Screenshot from 2025-10-15 10-36-16"
src="https://github.com/user-attachments/assets/2607a91d-22de-4f72-9e59-d2212b1f5888"
/>
2025-10-15 08:28:51 +00:00
Nuno Góis
715119741b
fix: hide enable strategy dialog when there are release plans (#10796)
https://linear.app/unleash/issue/2-3953/fix-enable-environment-modal-when-there-are-release-plans

Prevents the "environment needs at least one enabled strategy" dialog
from showing up if you have added a release plan.

This relies on the new `featureReleasePlans` feature flag.

PS: Maybe we should revisit this dialog in the future. We don't usually
see it, and maybe it should trigger the new "add strategy" modal?

<img width="684" height="399" alt="image"
src="https://github.com/user-attachments/assets/2f8213db-22b4-4618-b8e2-15eca096d465"
/>
2025-10-15 09:21:23 +01:00
Tymoteusz Czech
38bb9b3bfc
feat: enhance billing invoice components (#10799)
## About the changes
- Hide "included usage" column if an invoice doesn't have any items that
have lines with `limit`
- Minor component types refactors
- Only open (extend accordion) for the first invoice on the list
2025-10-15 10:00:59 +03:00
Mateusz Kwasniewski
61a82673e9
feat: changing milestone progression url (#10795) 2025-10-14 15:57:28 +02:00
Tymoteusz Czech
b5d1f6e075
chore: remove legacy flag UI (#10781) 2025-10-14 11:00:51 +02:00
Tymoteusz Czech
7efd707dee
Fix: invoice page debugging (#10791) 2025-10-14 08:01:38 +00:00
Fredrik Strand Oseberg
bc740bbe2f
feat: add milestone progression UI with projected start times (#10790) 2025-10-13 17:02:30 +02:00
David Leek
e890968048
feat: apply strategy suggestion directly when clicked (#10779) 2025-10-13 12:20:49 +02:00
Fredrik Strand Oseberg
0edbc7d595
feat: add inline editing for milestone progressions (#10777) 2025-10-13 11:53:45 +02:00
Jaanus Sellin
0d252558c4
feat: add new dates and plan price (#10774)
<img width="2159" height="1617" alt="image"
src="https://github.com/user-attachments/assets/478ea289-dc0f-439e-92e4-a22fa44a0650"
/>
2025-10-10 13:44:58 +03:00
Fredrik Strand Oseberg
4500f484ec
feat: improve milestone visual states in release plans (#10775) 2025-10-10 12:34:20 +02:00
Fredrik Strand Oseberg
ce2ef4fe6f
feat: add delete functionality for milestone progressions (#10770) 2025-10-10 09:10:10 +02:00
Jaanus Sellin
938d25828f
chore: update orval types (#10769) 2025-10-09 21:15:39 +03:00
Fredrik Strand Oseberg
a922801690
feat: Add transition condition UI for release plan milestones (#10768) 2025-10-09 11:41:58 +02:00
Fredrik Strand Oseberg
386c7d5bc6
chore: get release plans from features endpoint (#10764) 2025-10-09 10:12:56 +02:00
Thomas Heartman
7044cd4b1a
feat: Add batching functionality to new flags in production (#10756)
Adds the same batching functionality that was added to the
archived:created chart to the new flags in production chart.

In doing so, I've extracted the batching algorithm and the batched
tooltip title creation, as well as the ChartDataResult type (though
naming suggestions are still welcome on that front).

Locale 'ja':
<img width="1143" height="370" alt="image"
src="https://github.com/user-attachments/assets/827b41c6-0e67-46f4-8f82-4ba12e2120bb"
/>

Locale 'no':
<img width="1475" height="554" alt="image"
src="https://github.com/user-attachments/assets/6125c318-25fb-42bd-a520-44e6a7f7ece7"
/>
2025-10-08 12:40:11 +00:00
Mateusz Kwasniewski
cf018020df
chore: feature release plans flag (#10762) 2025-10-08 14:19:22 +02:00
Tymoteusz Czech
4ed138c151
Billing info updates (#10761) 2025-10-08 12:11:24 +00:00
Fredrik Strand Oseberg
1d4f72cf81
feat: improve milestone automation UI positioning and styling (#10758) 2025-10-08 11:56:41 +02:00
Fredrik Strand Oseberg
8072bc6706
feat: implement milestone progression form (#10749) 2025-10-08 10:15:08 +02:00
Tymoteusz Czech
183d436e59
feat: invoice sections (#10744)
Currency formatting and cleaner invoice components
2025-10-08 09:15:43 +02:00
Thomas Heartman
3e10ca6611
fix: highlight is too wide when batching weeks in archived:created chart (#10751)
Makes it so that the default width calculation for the highlighter
plugin attempts to first use the number of entries in the data set for
the x axis, but falls back to using the number of categories if that is
not available. This is probably the more "correct" / "do what I mean"
approach to setting highlighter width.

Fixes an issue where the highlight would be too wide if the labels were
set to "auto" instead of "data".

The width function is only used in two places (the archived:created
graph and the network graph). Both of those work fine with the new
update.

Before:
<img width="831" height="401" alt="image"
src="https://github.com/user-attachments/assets/8487b95f-cc49-4ff6-a519-7f79e1048eed"
/>

After:
<img width="886" height="378" alt="image"
src="https://github.com/user-attachments/assets/ad2102cb-3342-4a28-aa54-6b31caa495e1"
/>
2025-10-07 14:34:06 +02:00
Thomas Heartman
28d7672a58
feat: batch week data if the shown time span is greater than 12 weeks. (#10745)
Implements batching of data points in the archived:created chart: when
there's 12 or more weeks of data, batch data into batches of 4 weeks at
a time. When we batch data, we also switch the labeling to be
month-based and auto-generated (cf the inline comment with more
details).

<img width="798" height="317" alt="image"
src="https://github.com/user-attachments/assets/068ee528-a6d6-4aaf-ac81-c729c2c813d1"
/>


The current implementation batches into groups of 4 weeks, but this can
easily be parameterized to support arbitrary batch sizes.

Because of the batching, we also now need to adjust the tooltip title in
those cases. This is handled by a callback.
2025-10-07 13:51:45 +02:00
Tymoteusz Czech
f01f747c9b
chore: update openapi (#10747) 2025-10-07 10:27:54 +00:00
Tymoteusz Czech
3393bb35e5
feat: update invoice billing components (#10740) 2025-10-07 10:35:40 +02:00
Fredrik Strand Oseberg
ce1fb144d7
feat: add milestone progression automation UI (#10743) 2025-10-07 10:30:36 +02:00
Tymoteusz Czech
44882d52b4
chore: update openapi frontend types (#10739) 2025-10-06 13:26:56 +00:00
Thomas Heartman
236addbe23
fix: show average ratio for the period of collected data (#10735)
Instead of showing the current ratio of archived to created flags, we
show you the average ratio for the selected period.

Before:
<img width="1153" height="391" alt="image"
src="https://github.com/user-attachments/assets/efe87982-544e-485a-aa4d-04faa7d552fc"
/>

After:
<img width="1143" height="385" alt="image"
src="https://github.com/user-attachments/assets/25f8ee4d-3eaa-4e01-a793-2cc0321a55ed"
/>
2025-10-06 13:05:21 +02:00
David Leek
c39b4cd1b0
feat: add a suggestion banner at the bottom of empty feature-environments (#10725) 2025-10-06 09:02:15 +02:00
Tymoteusz Czech
adada932b9
fix: clearing lifecycle filter when switching to archived view (#10726)
"Lifecycle" filter should never be enabled when viewing archive.
2025-10-03 09:29:02 +02:00
Tymoteusz Czech
1e5de5b8b7
feat: new invoice billing page view (#10721)
Mockup of more detailed summary of used traffic on hosted offer.
See previous PR #10718
2025-10-03 07:24:27 +00:00
Tymoteusz Czech
9b5324ac92
feat: flag traffic billing display feature (#10718)
Feature flag and initial changes in Billing UI
2025-10-03 09:18:39 +02:00
Nuno Góis
df67c041fc
chore: new confirmation dialog for replacing release plans (#10720)
https://linear.app/unleash/issue/2-3931/add-a-confirmation-dialog-when-replacing-existing-release-plan

Adds a confirmation dialog when replacing an already active release
plan.

<img width="706" height="325" alt="image"
src="https://github.com/user-attachments/assets/f682809c-f563-4dca-9924-be1e9188c698"
/>
2025-10-02 15:48:27 +01:00
Mateusz Kwasniewski
6c6d4c0ccc
chore: milestone progression flag (#10719) 2025-10-02 14:28:37 +02:00
Tymoteusz Czech
f5af92b5ee
feat: change "archived" flags filter placement on project flags list (#10710)
Archived flags link will now it will show up on the right side, next to
import/export, which makes it more in line with flags overview.

Co-authored-by: Thomas Heartman <thomas@getunleash.io>
2025-10-02 11:44:57 +02:00
Mateusz Kwasniewski
c2b598d8d9
refactor: centralize number formatting (#10716) 2025-10-02 09:36:27 +02:00
Mateusz Kwasniewski
921130a9c0
fix: impact metrics formatting (#10715) 2025-10-01 16:33:58 +02:00
Tymoteusz Czech
b409cc8034
feat: add placeholder for empty change requests table (#10706) 2025-10-01 14:22:04 +02:00
Tymoteusz Czech
c7eb79038e
chore: add flags for UI filter refactor (#10708) 2025-10-01 09:20:25 +00:00
Tymoteusz Czech
9d996f14d9
feat: improve flag filters on project page (#10705) 2025-10-01 10:11:02 +02:00
Tymoteusz Czech
c12aca72db
Refactor flag filters (#10703)
Refactored and simplified code around flag filters, in preparation for
UI improvements. It's split into 2 PRs in order to simplify what needs
to be behind a flag and what doesn't.

- `ExperimentalColumnsMenu` moved to `ColumnsMenu`, old unused
`ColumnsMenu` removed
- Parts of the code moved to `ProjectFeaturesColumnsMenu`
- Moved `FlagCreationButton` to a separate file
- Removed part behind archived flag (`projectOverviewRefactorFeedback`)
2025-10-01 09:30:36 +02:00
Nuno Góis
b865ee44f3
chore: address UX feedback for add strategy modal (#10698)
https://linear.app/unleash/issue/2-3911/address-new-ux-feedback

Addresses UX feedback regarding new "add strategy" modal:
- "View more strategies" instead of "View more"
- Avoid horizontal scroll
- Fix responsiveness
- Prevent flicker when navigating between strategy and preview modals
2025-09-26 14:54:08 +01:00
Thomas Heartman
99c4f7111a
feat: add change request table filter buttons (#10679)
Adds filter buttons for filtering between "CRs created by me" and "CRs
where I've been requested as an approver".

The current implementation is fairly simplistic and the buttons are not
connected to the actual table state directly (instead being set up with
their own simple state and onChange hooks), but it covers the simple
scenario. I want to defer a more complex solution until we know we need
it and until we know exactly what we need. The implementation is based
on the lifecycle filters that we have on the project flags page.

The current logic is such that: when you land on the page, there's no
query params in the URL, but the data fetch applies `createdBy:IS<your
user>`. If you switch to "approval requested" (and back again), the URL
will reflect this.

For reference, the github workflow works like this, where each URL has a
set of default filters, e.g.:
- `/pulls`: `is:open is:pr assignee:thomasheartman archived:false`
- `/pulls/review-requested`: `is:open is:pr
review-requested:thomasheartman archived:false`

But if you change the default filters or add new ones, the URL will
update to `pulls?<query-string>` (e.g.
`/pulls?q=is%3Aopen+is%3Apr+review-requested%3Athomasheartman+archived%3Atrue`)

So this takes a similar approach, but better suited to the way we do
tables in general.

Rendered:

<img width="1816" height="791" alt="image"
src="https://github.com/user-attachments/assets/60935900-488d-4ca9-b110-39f3568a08a6"
/>

<img width="1855" height="329" alt="image"
src="https://github.com/user-attachments/assets/5e865a2e-8fdc-41ab-ba38-bbe6776d04ad"
/>
2025-09-26 12:42:47 +02:00
Thomas Heartman
7f97121c3b
fix: fall back to count === 0 if undefined / don't show "0 of undefined" (#10687)
If the total number of flag is undefined, we've previously shown "0 of
undefined". However, I don't think that's sensible. Instead, we should
show "0".

Before:
<img width="386" height="114" alt="image"
src="https://github.com/user-attachments/assets/5da61c05-16d2-4722-9874-63c1d011884b"
/>

After:
<img width="224" height="103" alt="image"
src="https://github.com/user-attachments/assets/c6c0711b-f3ce-45e3-8302-bfe9377112a8"
/>
2025-09-25 11:26:53 +02:00
Thomas Heartman
81b643cada
chore: rename variable for clarity (#10694)
entriesToLeave is more ambiguous than entriesToKeep, so let's go with
the latter.
2025-09-25 11:17:05 +02:00
Mateusz Kwasniewski
58c0076f22
feat: display aggregation mode automatically (#10696) 2025-09-24 18:02:26 +02:00
Thomas Heartman
59bf19bf96
chore: use params object for swr cache clearing functions (#10692)
With three and four different parameters (of which two are strings that
are easily interchanged), it makes sense to rewrite these two functions
to take named parameters instead. This is a follow-up to
https://github.com/Unleash/unleash/pull/10689 based on one of the review
comments.
2025-09-24 15:17:25 +02:00
Thomas Heartman
e3fc88b11f
fix: cache eviction bug and the eternal loading screen (#10689)
Fixes an issue where the project feature list (and potentially other
places in the app that use the `useClearSWRCache` hook) would end up in
an infinite loading screen because the latest entry that we want to show
was overwritten.

The primary reason this happened is that we used `keysToDelete =
array.slice(SWR_CACHE_SIZE - 1)`. Because the map keys are returned in
insertion order, this would make us never delete the oldest keys, but
always anything after the cache reached it's maximum size. The fix was
to instead do `slice(0, -(SWR_CACHE_SIZE - 1))`, unless that is `0, 0`.
If so, then just delete the entire filtered keys set.

As a bonus: this PR also deduplicates cache entries that have the same
query params but in different order for the feature search. This further
reduces the cache space needed.
2025-09-24 14:37:58 +02:00
Nuno Góis
3d9f5581d5
chore: limit total custom strategies displayed (#10688)
https://linear.app/unleash/issue/2-3897/limit-custom-strategies-like-were-doing-with-release-templates

Limits total custom strategies displayed, like we're doing for release
templates, in the new "add strategy" modal.

Added a more generic logic to `FeatureStrategyMenuCardsSection.tsx` so
we can reuse it for both.

We can also do it for other sections in the modal, but that feels like a
premature optimization. These 2 categories are the ones that are user
owned, and can have many items.
2025-09-24 13:06:49 +01:00
Nuno Góis
e98b511bb2
chore: add quick filter for custom strategies (#10686)
https://linear.app/unleash/issue/2-3896/add-quick-filter-for-custom-strategies

Adds a quick filter for custom strategies in the new "add strategy"
modal.

<img width="793" height="234" alt="image"
src="https://github.com/user-attachments/assets/b7190ff1-ef92-44b2-ad78-f3b283bdf6a2"
/>
2025-09-24 12:29:37 +01:00
Nuno Góis
27af5cb0b9
chore: update view more templates button design (#10685)
https://linear.app/unleash/issue/2-3898/update-the-design-of-the-view-more-button

Updates the design of the "view more templates" button in the new "add
strategy" modal.

<img width="925" height="221" alt="image"
src="https://github.com/user-attachments/assets/2a790828-aac5-4c56-bbac-bcb254dc6049"
/>
2025-09-24 12:02:26 +01:00
Mateusz Kwasniewski
efdfb67c9f
feat: histogram impact metric UI (#10684) 2025-09-24 10:53:58 +02:00
Nuno Góis
b4ad9c964f
chore: adjust add strategy modal height (#10677)
https://linear.app/unleash/issue/2-3893/set-a-minimum-height-in-the-release-template-preview-dialog

Adjusts the "add strategy" and "release template preview" modal heights,
ensuring better visual consistency between them.
2025-09-23 16:25:51 +01:00
Nuno Góis
63b0006b46
chore: update strategy cards background color (#10681)
https://linear.app/unleash/issue/2-3895/update-cards-background-color

Updates the strategy cards background color to match the designs.

<img width="985" height="569" alt="image"
src="https://github.com/user-attachments/assets/6b6e1dd3-b811-4841-8858-4046f3c79717"
/>
2025-09-23 13:54:25 +01:00
Thomas Heartman
4dd97b97f4
chore: use paginated table for change request list (#10660)
Adds a paginated table to the change request overview page and
integrates it with the search API hook.

The current implementation still has some rough edges to work out, but
it's getting closer.

There's no sort buttons in this implementation. I've got it working on
the side, but TS is complaining about types not matching up, so I'm
spinning that out to a separate PR.

<img width="1808" height="1400" alt="image"
src="https://github.com/user-attachments/assets/bdee97b7-ee2a-46c0-8460-a8b8e14d3c92"
/>
2025-09-23 12:05:11 +00:00
Thomas Heartman
6be5e6c969
fix: don't call location hook conditionally in CR badge (#10676)
Fixes a bug where I added a conditional hook call in
https://github.com/Unleash/unleash/pull/10651.
2025-09-23 10:46:23 +02:00
Nuno Góis
f36b39b721
chore: update release template preview dialog (#10673)
https://linear.app/unleash/issue/2-3888/update-the-release-templates-preview-dialog-to-match-the-new-designs

Updates the release template preview dialog when using the new "add
strategy" modal, so it better matches the new design.

Used the legacy file pattern to leave the previous modal component
unchanged.

<img width="992" height="467" alt="image"
src="https://github.com/user-attachments/assets/fd000822-c987-47be-b8a4-3f137e0291ec"
/>

<img width="979" height="576" alt="image"
src="https://github.com/user-attachments/assets/02a27d5c-4480-4a49-88ae-0d573ff0f640"
/>
2025-09-22 14:55:24 +01:00
Nuno Góis
a1691fead7
chore: add new strategy icons (#10665)
https://linear.app/unleash/issue/2-3879/add-new-strategy-icons

Adds new strategy icons in the new "add strategy" modal.

<img width="983" height="564" alt="image"
src="https://github.com/user-attachments/assets/dc39379d-f8c0-41ec-9510-61b6115acfa5"
/>

<img width="988" height="565" alt="image"
src="https://github.com/user-attachments/assets/dba642f1-bf37-4e49-906d-dcd88fdaf1e0"
/>
2025-09-22 11:26:52 +01:00
Nuno Góis
2e2840e690
chore: persist strategy filter when going back from release template preview (#10663)
https://linear.app/unleash/issue/2-3878/persist-strategy-filter-when-going-back-from-the-release-template

Persists the strategy filter in the new "add strategy" modal when going
back from the release template preview modal.

This is done by moving the filter to the parent component, so the filter
state persists across these navigations.

Also updates the button text in the release templates preview to say
"Apply template" for consistency, but only if the `newStrategyModal`
flag is enabled.
2025-09-22 10:52:28 +01:00
Mateusz Kwasniewski
7d70f8fc55
fix: encode application name (#10671) 2025-09-19 11:24:17 +02:00
Thomas Heartman
a519cb84f5
Add use change request search hook for UI. (#10664)
Adds a use change request search hook. The hook (and tests) are based
closely on the `useFeatureSearch` files.

I will wire them up to the table in an upcoming PR.

Also: fixes the orval schema to use numbers for offset and limit instead
of strings (enterprise pr incoming). Plus: updates a variable usage in
the use feature search hook.
2025-09-12 12:16:58 +00:00
Nuno Góis
af0b3529b7
chore: update strategy cards in new add strategy modal (#10659)
https://linear.app/unleash/issue/2-3867/update-strategy-cards

Updates the new "add strategy" modal strategy cards.

Followed the same logic as before where I took a snapshot of existing
components and prefixed them with `Legacy`.

Does not include the new icons.

<img width="979" height="562" alt="image"
src="https://github.com/user-attachments/assets/8cb45c78-ad67-41f2-a6e2-db48fefbabdb"
/>

<img width="317" height="108" alt="image"
src="https://github.com/user-attachments/assets/fb692ebc-26ad-4331-813a-baaf56d0df7e"
/>
2025-09-12 10:14:21 +01:00
Thomas Heartman
f9267d9cb4
chore: add orval schemas for change request search (#10661)
Adds first iteration of orval charts for change request searching.
2025-09-12 08:43:22 +00:00
Thomas Heartman
c843518de4
chore: scroll to the top of table when changing page (#10657)
Makes it so that if you change the page in a paginated table, you'll
scroll to the top of the table. Makes the experience more user friendly.

Will only scroll if the top of the table isn't in view already.

Also scrolls to the top of the table when you change the page size
unless: you are on the first page **and** increasing the page size.

The reason for this behavior is:
- we already send you back to page 1 if you change the page size (so it
makes sense to also scroll you to the top)
- if you're increasing the page size because you're at the bottom of the
table, you probably wanna keep your place
- if you're decreasing the page size, you might be below where the
actual table cuts off, so you'll end up at the bottom of the table (or
below the table completely if that's possible on that page)
2025-09-12 10:40:48 +02:00
Tymoteusz Czech
e79fa33647
fix: quick project filters total calculation (#10658) 2025-09-11 16:29:04 +02:00
Tymoteusz Czech
4b42435590
feat(frontend): quick filters on project overview (#10638) 2025-09-11 13:28:59 +02:00
Nuno Góis
be4665f3f1
chore: update release templates empty states in new add strategy modal (#10656)
https://linear.app/unleash/issue/2-3876/update-the-release-templates-section-accordingly

Updates the release templates empty states in the new add strategy modal
to match the new design sketches.

Also fixes a few details in the modal base design.

<img width="989" height="583" alt="image"
src="https://github.com/user-attachments/assets/b3148fe1-eb61-48d5-84cb-3dc4381f7c0c"
/>

<img width="981" height="581" alt="image"
src="https://github.com/user-attachments/assets/54f9a4d7-8cde-4f4b-bc9d-dc7114d7e17f"
/>
2025-09-11 11:19:55 +01:00
Nuno Góis
c0eedba400
chore: small updates to the new add strategy modal design (#10646)
https://linear.app/unleash/issue/2-3877/small-changes-to-match-the-new-designs

This adds 2 changes in our new "add strategy" modal to better align with
our sketches:
- Remove the "Custom strategies" filter: According to the designs,
they're part of the "Advanced strategies" filter;
- Update the project default tooltip in case you don't have access to
the project default strategy configuration;

Here are the design references:

<img width="330" height="148" alt="image"
src="https://github.com/user-attachments/assets/c508e776-5f54-4402-b148-321ea99e1134"
/>

<img width="657" height="371" alt="image"
src="https://github.com/user-attachments/assets/c9d8be22-99a3-46e3-b7a7-a77b94e0aa60"
/>

And this is how it looks like after this PR:

<img width="335" height="116" alt="image"
src="https://github.com/user-attachments/assets/f1e0cbec-d79a-49b6-a8a7-1b15f3f2726e"
/>

<img width="984" height="401" alt="image"
src="https://github.com/user-attachments/assets/7271ab5c-721e-4624-aebe-d3c5d7e402dd"
/>
2025-09-11 10:50:16 +01:00
Thomas Heartman
fabf76e12c
feat: global change requests table (#10650)
Adds basic table layout for the global change requests page and makes
the page accessible at `/change-requests`.

The table is based on the project-based change request table, but with a
slightly different set of columns.

Uses mock data for now. 

There's still some styling to be done for the column widths and handling
narrower screens.

<img width="1386" height="671" alt="image"
src="https://github.com/user-attachments/assets/b24ed625-d3f6-4281-ba44-30744d5063f3"
/>

If the flag is disabled, we render nothing useful.
<img width="1429" height="287" alt="image"
src="https://github.com/user-attachments/assets/289b5707-4389-4c08-bf68-55d63e186ba5"
/>


closes 1-4076
2025-09-11 10:15:57 +03:00
Thomas Heartman
d3e7e67b91
Fix: use locale string for change request time badge. (#10651)
Uses the user's preferred date / time formatting for the scheduled at
time in CR schedule badges.

Before (en-US formatting):
<img width="291" height="58" alt="image"
src="https://github.com/user-attachments/assets/edb04292-4678-4bfd-93a1-8fd2a3f01a1f"
/>

After (ja formatting):
<img width="308" height="106" alt="image"
src="https://github.com/user-attachments/assets/9828355f-0c23-4b8f-bef3-a0173e92c306"
/>
2025-09-11 09:13:26 +02:00
Thomas Heartman
aec3461159
chore: change from "change requests" to "open" in project change request tabs (#10648)
For some reason, the two change request tabs are called "Change
Requests" and "Closed", instead of "Open" and "Closed".

I suspect this may be an error, but this fixes it. 

Before:
<img width="383" height="176" alt="image"
src="https://github.com/user-attachments/assets/faf95827-f384-4187-bc0b-f32b8fbbef41"
/>

After:
<img width="372" height="166" alt="image"
src="https://github.com/user-attachments/assets/67528024-7783-42e3-b014-bad4f7bc871b"
/>
2025-09-10 16:05:22 +02:00
Thomas Heartman
509dd80f86
chore: Update from "toggles" to "flags" (#10647)
Updates the features cell text when you have lots of flags affected.

Looks like we missed this one in a previous renaming attempt.

Before:
<img width="245" height="154" alt="image"
src="https://github.com/user-attachments/assets/922334f4-a0f1-4dee-9d14-3c9b3f77f32c"
/>

After:
<img width="275" height="170" alt="image"
src="https://github.com/user-attachments/assets/7fa0f454-e695-46aa-918b-c22b97e94187"
/>
2025-09-10 16:05:18 +02:00