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

6354 Commits

Author SHA1 Message Date
renovate[bot]
dded35a9c2
chore(deps): update emotion monorepo 2025-10-13 09:16:29 +00: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