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

176 Commits

Author SHA1 Message Date
Gastón Fournier
abe160eb7d
feat: Unleash v7 ESM migration (#9877)
We're migrating to ESM, which will allow us to import the latest
versions of our dependencies.

Co-Authored-By: Christopher Kolstad <chriswk@getunleash.io>
2025-05-14 09:47:12 +02:00
Tymoteusz Czech
d60ea1acd4
feat: redirect logic refactor (#9734) 2025-04-17 12:07:08 +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
Tymoteusz Czech
dd62b3dbcd
Constraint values list (#9592) 2025-03-24 14:26:58 +01:00
Thomas Heartman
dadda7b648
fix: Data usage graphs don't work in UTC-n time zones (#9530)
Fixes a number of issues that would surface in UTC-n (where n > 1)
timezones. I've not found a way to check this with tests (and it looks
like [we weren't able to last time
either](https://github.com/Unleash/unleash/pull/9110/files#r1919746328)),
so all the testing's been done manually by adjusting my system time and
zone. (From what I understand, you can't generate a Date with a specific
TZ offset in JS: it's only utc or local time)

Resolved:
- [x] Selecting "Jan" in the dropdown results in the selection being
"December" (off by one in the selector)

- [x] Selecting a month view only gives you one data point (and it's
probably empty). Wrong date parsing on the way out resulted in sending
`{ from: "2025-02-28", to: "2025-02-28"}` instead of `{ from:
"2025-03-01", to: "2025-03-31"}`

- [x] The dates we create when making "daysRec" need to be adjusted.
They showed the wrong month, so the dates were off.

- [x] Make sure the labels are correct when hovering over. Again: we
used the wrong month for generating these.

- [x] The available months are wrong. Incorrect month parsing again.

- [x] The request summary month is wrong. You guessed it: incorrect
month parsing
2025-03-13 15:44:10 +01:00
Thomas Heartman
8629cda4d7
chore: remove dataUsageMultiMonthView flag (#9429)
Remove data usage multi month view flag and deprecated components and
functions.
2025-03-05 12:08:33 +01:00
Thomas Heartman
a50fb7db35
chore: remove frontendHeaderRedesign flag (#9428)
Removes all references to the flag and deletes unused components.
2025-03-05 09:40:53 +01:00
David Leek
90fe02ed0d
fix: solve 31 day month issue by using trafficUnitSize and not constant 1_000_000 (#9404) 2025-03-03 11:16:48 +01:00
Tymoteusz Czech
42a05ef418
feat: new environment box (#9342)
Co-authored-by: Thomas Heartman <thomas@getunleash.io>
2025-02-25 10:34:36 +00:00
Thomas Heartman
90e5adb695
chore: use union type for traffic search data (#9221)
Makes the data returned from the traffic search a union type to avoid
nasty object-is-undefined errors at runtime.

It requires more explicit handling, sure, but it means we don't need
to accept undefined.
2025-02-05 10:50:39 +00:00
Thomas Heartman
17a4099dbf
refactor: add functions to estimate monthly usage from data directly (#9219)
Adds new monthly estimation functions that operate on raw usage data
instead of chart data. This brings those methods in line with the rest
of the traffic calculation functions that we have in that file and means
we can remove other external dependencies.

 This is somewhat inspired by #9218, but not directly linked.
2025-02-05 11:12:17 +01:00
Thomas Heartman
bd6a90ffd4
chore: add tests for new traffic usage functions (#9208)
This PR adds tests to all the TODOs created in
https://github.com/Unleash/unleash/pull/9191.

Additionally it finally manages to refactor the `toChartData` function.
2025-02-05 09:47:36 +01:00
Thomas Heartman
c85c687816
chore(1-3335): filters data coming from the API to remove data points we're not interested in (#9205)
Implements a function that cleans and filters incoming data from the
new traffic API.

Specifically, it:
- Removes `/edge` data points
- Removes any data from before may 2024, which is the first full month
we have on record

Because all uses of the existing hook do this filtering themselves, I
have added the filtering at the hook level. This is to avoid
forgetting this filtering later. If we find out we need this data, we
can move the filtering.
2025-02-04 13:26:08 +01:00
Thomas Heartman
2980c0de4e
refactor(1-3336): useTrafficData / NetworkTrafficUsage.tsx cleanup (#9191)
This PR refactors the `NetworkTrafficUsage.tsx` and `useTrafficData`
files a bit.

The primary objective was to make the network traffic usage component
easier to work with, so I suggest to the reviewer that they start there.

Part of that refactoring, was taking things out of the useTraffic hook
that didn't need to be there. In the end, I'd removed so much that I
didn't even need the hook itself in the new component, so I switched
that to a regular useState.

It made more sense to me to put some of the functions inside the hook
into a separate file and import them directly (because they don't rely
on any hook state), so I have done that and removed those functions from
the trafficData hook. In this case, I also moved the tests.

I have not added any new tests in this PR, but will do so in a
follow-up. The functions I intend to test have been marked as such.
2025-02-04 10:32:59 +01:00
Nuno Góis
772f9f4f81
chore: update release plans icon (#8894)
https://linear.app/unleash/issue/2-3042/update-release-plans-feature-icon

Updates the icon for the release plans feature.


![image](https://github.com/user-attachments/assets/d7ede926-040c-4102-a59d-e096852dbc27)
2024-12-02 11:51:18 +00:00
Nuno Góis
14403d7836
chore: release plans flow in flag environments (#8843)
https://linear.app/unleash/issue/2-2816/add-release-plan-to-feature-flag-from-release-template

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

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

Implements the release plan flow in the feature flag environment.

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


https://github.com/user-attachments/assets/24db9db4-7c3a-463e-b48a-611358f2b212
2024-11-26 09:15:24 +00:00
Nuno Góis
044e61454b
chore: list release templates in strategy popover (#8703)
https://linear.app/unleash/issue/2-2817/expand-the-strategy-dropdown-with-release-plan-templates

Does what it says on the tin, lists release plan templates in the
strategy popover.

I think we should improve this popover soon, at least behind the
`flagOverviewRedesign` flag, but not in this PR.


![image](https://github.com/user-attachments/assets/6f91175f-f941-4566-b56b-24007d5077da)
2024-11-08 14:26:01 +00:00
Nuno Góis
38bd50dc8a
refactor: introduce a highlight reusable component (#8643)
Follow-up to: https://github.com/Unleash/unleash/pull/8642

Introduces a reusable `Highlight` component that leverages the Context
API pattern, enabling highlight effects to be triggered from anywhere in
the application.

This update refactors the existing highlight effect in the event
timeline to use the new Highlight component and extends the
functionality to include the Unleash AI experiment, triggered by its
entry in the "New in Unleash" section.
2024-11-05 09:21:19 +00:00
Nuno Góis
d161fb49ee
chore: implement event grouping in the event timeline (#8254)
https://linear.app/unleash/issue/2-2663/implement-event-grouping-when-multiple-events-happen-in-a-short-period

This PR introduces a grouping logic for timeline events, enhancing the
way events are displayed when they occur close to each other.

We also updated and refactored components to support handling groups of
events rather than individual events.

Also includes some minor code cleanups and optimizations as part of
general refactoring efforts (scouting).


![image](https://github.com/user-attachments/assets/eed74ddd-017c-430d-b919-3cb7e257052d)

---------

Co-authored-by: David Leek <david@getunleash.io>
2024-09-26 14:48:52 +01:00
Mateusz Kwasniewski
e680921517
test: reduce noise from test warnings (#8251) 2024-09-25 12:56:09 +02:00
Mateusz Kwasniewski
0b656db80a
test: onboarding test with existing key (#8116) 2024-09-06 11:50:52 +02:00
Jaanus Sellin
4a4dafcc3f
chore: remove create feature component (#7959)
After we implemented new feature flag creation flow, this are not used
anymore.

Creation is now handled by **CreateFeatureDialog**.

Also edit component can be minified, because it does not need so many
fields anymore.
2024-08-22 11:30:41 +03:00
Mateusz Kwasniewski
06f5073fce
test: insights filtering (#7612) 2024-07-17 15:03:02 +02:00
Jaanus Sellin
e8511789fd
feat: command menu items can have description as tooltip now (#7455)
![image](https://github.com/Unleash/unleash/assets/964450/7a55a1a7-7aea-4f9c-96ac-46adf2edd36f)
2024-06-26 12:39:53 +03:00
Jaanus Sellin
3acb3ad2c2
feat: upgrade from react v17 to v18 (#7265)
**Upgrade to React v18 for Unleash v6. Here's why I think it's a good
time to do it:**
- Command Bar project: We've begun work on the command bar project, and
there's a fantastic library we want to use. However, it requires React
v18 support.
- Straightforward Upgrade: I took a look at the upgrade guide
https://react.dev/blog/2022/03/08/react-18-upgrade-guide and it seems
fairly straightforward. In fact, I was able to get React v18 running
with minimal changes in just 10 minutes!
- Dropping IE Support: React v18 no longer supports Internet Explorer
(IE), which is no longer supported by Microsoft as of June 15, 2022.
Upgrading to v18 in v6 would be a good way to align with this change.

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

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

---------

Co-authored-by: kwasniew <kwasniewski.mateusz@gmail.com>
2024-06-11 13:59:52 +03:00
Simon Hornby
f16f8594f5
chore: deprecate custom strategies (#7186) 2024-05-28 12:33:53 +02:00
Mateusz Kwasniewski
c8db321b3e
feat: Persist expand collapse (#7169) 2024-05-27 15:36:24 +02:00
Mateusz Kwasniewski
68427f841b
feat: Persist navigation settings (#7144) 2024-05-24 13:21:12 +02:00
Mateusz Kwasniewski
668cb81384
fix: omit yes no from stale data comparison (#7052) 2024-05-14 12:42:39 +02:00
Nuno Góis
a00c17ba3d
chore: upgrade typescript in frontend to 5.4.2 (#6673)
Follow up to https://github.com/Unleash/unleash/pull/6605

This upgrades TypeScript in frontend to `5.4.2`, matching the version we
have on the server.
Only 2 things broke with this upgrade, so the changes are related to
fixing the types in those places.

This fixes https://github.com/Unleash/unleash/pull/6659
2024-03-22 10:13:44 +00:00
Christopher Kolstad
53354224fc
chore: Bump biome and configure husky (#6589)
Upgrades biome to 1.6.1, and updates husky pre-commit hook.

Most changes here are making type imports explicit.
2024-03-18 13:58:05 +01:00
andreas-unleash
1ad5b5062a
feat: Make storing to local storage robust (#6139)
Handles non serializable objects like Map and Set and makes the
serialisation/deserialisation process more robust generally.

Closes #
[UNL-322](https://linear.app/unleash/issue/UNL-322/add-types-to-local-storage-and-force-simple-types)

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-02-13 09:36:15 +02:00
Mateusz Kwasniewski
3d1e0a6312
chore: upgrade to msw 2.x with new response declaration (#6148) 2024-02-07 11:33:55 +01:00
Mateusz Kwasniewski
d060427603
chore: update msw (#6147) 2024-02-07 10:58:29 +01:00
Thomas Heartman
5417662f5a
chore: add metrics for conflict creation detection (#6022)
This PR adds a 'change-request-conflict-created' event whenever someone
save a strategy update for a strategy that's used in either pending or
scheduled change requests.

Data for pending change requests will only be sent if change requests
are enabled. Data for scheduled change requests will be sent regardless.

Getting this data is somewhat involved, so I've extracted as much of the
logic into a separate file as possible.

The event re-uses the existing `change_request` metric and sends the
following data for each change request that we discover conflicts on:

```ts 
{
  state: ChangeRequestState,
  changeRequest: string, // <unleash identifier>#<change request id>
  action: 'edit-strategy',
  eventType: 'conflict-created'
}
```

There's only one action for this for now, but we could expand this event
to things such as strategy deletion, feature archival, in the future.
That said, I'd be happy to take it out.

## Discussion points

### Has the strategy actually been updated?

This does not check whether a strategy has actually changed before
emitting the event, only that you save your strategy changes.

This assumes that most people will simply close the modal by
clicking/tapping outside it or using the escape key instead of pressing
save.

However, it will likely lead to some false positives. If we think that
is an issue, I would suggest adding a check that something in the
strategy has actually changed in a follow-up PR.
2024-01-31 18:56:56 +09:00
Jaanus Sellin
2643ac1356
feat: add CR id to plausible events (#6035)
Added conflict count to CR metrics and CR id.

Something to think about:
There was idea that we can aggregate this data based on CR id, but CR id
is just a number from 0 to x. So it will not be unique across instances.

---------

Co-authored-by: Thomas Heartman <thomas@getunleash.io>
2024-01-30 10:38:39 +02:00
Mateusz Kwasniewski
8a7e65eaa6
refactor: cleanup fix for persistent set (#6060) 2024-01-29 12:33:01 +01:00
andreas-unleash
a096b2a485
fix: store redirect to localStorage to avoid loss of redirect (#5929)
Stores `redirect` param in localStorage in the Authentication component.
Retrieves the `redirect` param from localStorage at the Login screen if
it is not there in the url.

This will solve losing the redirect information all provider logins

Closes #
[1-1890](https://linear.app/unleash/issue/1-1890/capture-path-before-logging-in-and-redirect-to-it-if-there-and-custom)

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-01-19 11:32:26 +02:00
Christopher Kolstad
5a3bb1ffc3
Biome1.5.1 (#5867)
Lots of work here, mostly because I didn't want to turn off the
`noImplicitAnyLet` lint. This PR tries its best to type all the untyped
lets biome complained about (Don't ask me how many hours that took or
how many lints that was >200...), which in the future will force test
authors to actually type their global variables setup in `beforeAll`.

---------

Co-authored-by: Gastón Fournier <gaston@getunleash.io>
2024-01-12 09:25:59 +00:00
Nuno Góis
b496990f79
chore: add no unused imports biome rule (#5855)
Adds a Biome rule for "no unused imports", which is something we
sometimes have trouble catching.

We're adding this as a warning for now. It is safely and easily fixable
with `yarn lint:fix`.


![image](https://github.com/Unleash/unleash/assets/14320932/fd84dea8-6b20-4ba5-bfd8-047b9dcf2bff)

![image](https://github.com/Unleash/unleash/assets/14320932/990bb0b0-760a-4c5e-8136-d957e902bf0b)
2024-01-11 12:44:05 +00:00
Mateusz Kwasniewski
3a2d4ae60b
feat: daily metrics display (#5836) 2024-01-11 10:39:58 +01:00
Fredrik Strand Oseberg
70600552d2
Feat/add feedback to new strategy form (#5745)
This PR adds the feedback form to the new create / edit strategy form
behind a feature flag.

* Add feedback form
* Minor refactor to useFeedback
2024-01-03 15:43:22 +01:00
Thomas Heartman
b0c5baa9d3
chore: format schedule information according to user preferences (#5747)
This pr uses the user's preferred timezone to display the scheduled
times. If the user has no preferences, the default will be used.

With norwegian locale set as preference: 

<img width="1529" alt="image"
src="https://github.com/Unleash/unleash/assets/17786332/0072432c-e470-4edc-91fb-864a86bc8f30">

With nothing set (falls back to my system setting):
<img width="1529" alt="image"
src="https://github.com/Unleash/unleash/assets/17786332/adf3d95f-4015-4302-ac09-e3ba511090db">
2024-01-03 18:18:43 +05:30
Fredrik Strand Oseberg
5a263ee35c
Feat/new strategy configuration tests (#5692)
Does what it says
2023-12-20 09:16:45 +01:00
Mateusz Kwasniewski
8306073e1f
feat: keep filter order (#5688) 2023-12-19 15:35:39 +01:00
Tymoteusz Czech
29bd636273
Feat: row actions (#5635)
- add table placeholder back
- add row actions column
- refactor actions into hook
- batch actions
2023-12-14 09:04:56 +01:00
Tymoteusz Czech
17b747ea8f
feat: project features - new columns visibility handling (#5605)
In `ExperimentalProjectTable.tsx`, changes have been made to the columns
configuration in order to handle column visibiilty. This includes adding
id property to every column. Logic responsible for dynamically adjusts
column visibility based on screen size was moved to new hook,
`useDefaultColumnVisibility`
2023-12-13 10:08:16 +01:00
Tymoteusz Czech
bc62a98f51
update withTableState (#5603)
## About the changes
Handle column visibility from table state in URL and local storage.
2023-12-12 14:01:04 +01:00
Jaanus Sellin
386c4baa86
feat: keep filters ordered based on user selection (#5609) 2023-12-12 13:01:23 +02:00
Jaanus Sellin
9bae14a2cc
feat: add tags filter (#5584) 2023-12-11 14:10:03 +02:00