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

72 Commits

Author SHA1 Message Date
Thomas Heartman
99b8fa2943
refactor: take chatgpt's suggestions for diff calc algorithm (#6086)
We had to make some updates to let the compiler know about the types and
fix an issue with nested objects not being compared as objects (instead
as strings), but this saves us a few lines and is hopefully more
readable.
2024-02-01 19:57:09 +09:00
Jaanus Sellin
e4ca8a3e6c
feat: track search bar events (#6021)
Adding tracking for 2 views, when users use the new search. 

For features view and project view.
2024-01-24 14:23:23 +02:00
Thomas Heartman
01318b11ea
fix: show the updated value instead of the snapshot value (#5989)
This PR fixes a bug in the displayed value of the conflict list so that
it shows the value it would update to instead of the snapshot value.

In doing so, it updates the logic of the algorithm to:

1. if the snapshot value and the current value are the same, it's not a
conflict (it's an intended change)
2. If the snapshot value differs from the current value, it is a
conflict if and only if the value in the change differs from the current
value. Otherwise, it's not a conflict.

The new test cases are:
- it shows a diff for a property if the snapshot and live version differ
for that property and the changed value is different from the live
version
- it does not show a diff for a property if the live version and the
change have the same value, even if the snapshot differs from the live
version
- it does not show a diff for a property if the snapshot and the live
version are the same
2024-01-24 12:39:41 +04:00
Thomas Heartman
f7c8180145
Chore: omit snapshot property from event payload (#5972)
This PR hides the "snapshot" data from the diff overview we show in the
UI in a change request.
2024-01-22 11:13:49 +04:00
Thomas Heartman
0bb709a718
feat: show changes that would be overwritten in change request overview UI (#5964)
This PR adds a first, rough iteration of what it could look like to show
changes that would be overwritten by applying a PR.

The changes are listed in a table (semantically; looks more like a list
visually) and show the property, the current live value and the version
that you have in your changes. The changes are hidden by default, but
can be shown by expanding a details element.

@nicolaesocaciu Suggested that we merge this version for now and iterate
on the design later.

Here's what it looks like closed:

![image](https://github.com/Unleash/unleash/assets/17786332/3a641642-0537-4e7a-aeca-b3d3df6b8e31)

Here's what it looks like with a typical change load:

![image](https://github.com/Unleash/unleash/assets/17786332/b7aa7265-d1c7-4b6b-a9a2-f58cb966f25c)


Here's what it looks like if you change more or less every property
changed:

![image](https://github.com/Unleash/unleash/assets/17786332/4d94ab69-86ed-4c3e-be6a-6890c654e37e)
2024-01-22 11:13:38 +04:00
Thomas Heartman
01a38becb3
fix: handle title diffing correctly in strategy change diffs (#5971)
A strategy title can be either an empty string or undefined on the
type we use in the frontend. In the snapshot it can be an empty
string, null (presumably), and undefined.

This change updates the diffing logic to handle the various title diff
cases correctly. It also updates the type used for the snapshot to
reflect this.
2024-01-19 18:56:46 +04:00
Thomas Heartman
c69137a1ee
feat: add algorithm to detect what strategy changes would be overwritten by applying a CR (#5963)
This change adds an algorithm with tests for detecting what changes
would be overwritten by applying a CR.

Test cases:
- It compares strategies regardless of order of keys in the objects.
This ensures that two strategies with the same content but different
order of keys are compared correctly.
- It treats `undefined` or missing segments in old config as equal to
`[]` in change
- It treats `undefined` or missing strategy variants in old config and
change as equal to `[]`
- It lists changes in a sorted list with the correct values
- It ignores object order on nested objects. Similar to the first
point, this does order-insensitive comparison for nested objects (such
as params and constraints).
2024-01-19 13:08:08 +04:00
Fredrik Strand Oseberg
967ee13e62
fix: add symbols as constraint ids (#5913)
This PR adds uuids as ids using a symbol in order to make sure we only
use this to keep internal order in the viritual DOM. This makes us able
to have predictable mutable lists on the frontend, and makes it easy to
not pass this property along to the backend.
2024-01-16 13:47:04 +01:00
Thomas Heartman
39145e2617
refactor: use union types for change request types (#5870)
This changes the two interfaces IChangeRequest and
IChangeRequestSchedule to be union types instead of interfaces. It also
extracts the constituents of those union types into proper types
themselves (so that they can be used in function type signatures etc).
It also updates the type names.

This turned out to be more work than I had imagined, but I think the end
result pays off, giving us more type safety and control.

I wanted to use just `ChangeRequest` for the IChangeRequest type, but
that caused issues due to naming collisions with the `ChangeRequest`
component that we have, causing tests to fail. I've named it
`ChangeRequestType` as a potential solution, but suggestions are
welcome.

The relevant changes are in
`frontend/src/component/changeRequest/changeRequest.types.ts`.
Everything else is updated references and some necessary refactoring to
respect the new types.
2024-01-12 13:15:43 +05:30
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
Fredrik Strand Oseberg
2a723ea9e8
fix: remove empty variants when changing tabs (#5850)
This PR makes a change to how variants work in the new setup. Variants
will now:

* Be removed if you change tab or unmount the component and it has no
name
* Moved StrategyVariants into a separate component to isolate this
change
* Add error handling around onSubmit and only trigger feedback if it's
successful
2024-01-11 10:43:29 +01:00
Fredrik Strand Oseberg
049c5b9afa
feat: variant name change on create (#5742)
This PR refactores the StrategyVariants component to be passed in from
the outside to the new form component. This allows us to pass in the
StrategyVariants with an "editable" property in the create form which we
use to determine the editable state of the name input field. If the
editable field is not passed in we keep the old behavior.

Notable changes:
* StrategyVariants is now passed in from the outside, allowing us to
define different props at call time
* Added tests for the new behavior, and for keeping the old behavior
(such as in edit strategy)
* Added tracking
2024-01-02 13:53:04 +01:00
andreas-unleash
12100b3912
fix: add padding to warning banner (#5720)
Closes #
[1-1830](https://linear.app/unleash/issue/1-1830/potential-conflict-warning-add-padding-8px)

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-12-21 14:58:17 +02:00
andreas-unleash
e0f83347ab
fix: hide variant diff if no change in ChangeRequestOverview (#5715)
Closes #
[1-1813](https://linear.app/unleash/issue/1-1813/do-not-show-variants-table-in-change-request-when-no-variant-change)

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-12-21 10:39:18 +02:00
Fredrik Strand Oseberg
864ae4530b
Feat/new strategy configuration header (#5655)
This PR adds more information to the header of the strategy according to
the new designs:

<img width="1298" alt="Skjermbilde 2023-12-15 kl 13 31 26"
src="https://github.com/Unleash/unleash/assets/16081982/73a3bc6b-c78b-4f24-b9f3-8a4b2c14e39c">
2023-12-15 14:09:47 +01:00
Fredrik Strand Oseberg
9dbb7ea9a9
feat: add initial setup for tabs (#5586)
This PR sets up the initial tab structure for the new strategy form
2023-12-11 13:39:21 +01:00
Thomas Heartman
a0a15416c4
feat: display potential conflicts in existing change requests (#5521)
This update displays schedule conflicts in active change requests (any
CR that isn't applied, canceled, or rejected).


![image](https://github.com/Unleash/unleash/assets/17786332/181c6c0a-f5de-4eed-9093-ac0109e1e8f3)
2023-12-04 13:33:28 +01:00
andreas-unleash
02451baaf2
feat: hide change actions when change request is scheduled (#5514)
Added 'Scheduled' state to the check for non-pending change requests

Closes #
[1-1680](https://linear.app/unleash/issue/1-1680/remove-edit-change-ui-when-cr-is-scheduled)
<img width="868" alt="Screenshot 2023-11-30 at 11 54 44"
src="https://github.com/Unleash/unleash/assets/104830839/8e6afec5-1353-4030-b49b-4a8f3eaee5f6">

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-11-30 12:52:29 +02:00
andreas-unleash
8ffc92af5b
fix: Only show strategy variant changes if there is a diff in the variants (#5353)
What it says on the box

Closes #
[1-1652](https://linear.app/unleash/issue/1-1652/remove-the-variants-from-change-request-page-when-not-modified)

![Screenshot 2023-11-16 at 11 26
05](https://github.com/Unleash/unleash/assets/104830839/8f25b82c-4dbc-46fb-bdd6-0e0049659c72)

![Screenshot 2023-11-16 at 11 25
46](https://github.com/Unleash/unleash/assets/104830839/e6366622-3a50-4a0e-bba2-6c1d34e64077)

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-11-22 09:50:03 +02:00
Mateusz Kwasniewski
af50fc2fd3
feat: visualize dependencies managment in change requests (#4978) 2023-10-10 10:36:13 +02:00
Nuno Góis
4167a60588
feat: biome lint frontend (#4903)
Follows up on https://github.com/Unleash/unleash/pull/4853 to add Biome
to the frontend as well.


![image](https://github.com/Unleash/unleash/assets/14320932/1906faf1-fc29-4172-a4d4-b2716d72cd65)

Added a few `biome-ignore` to speed up the process but we may want to
check and fix them in the future.
2023-10-02 13:25:46 +01:00
Fredrik Strand Oseberg
d3e01d84d9
fix: account for array length (#4849)
Small fix to account for array length in conditional check
2023-09-27 15:12:01 +02:00
Fredrik Strand Oseberg
cefbf01934
feat: visualize feature variants on cr (#4809)
Adds a view over feature strategy variants on addStrategy or
editStrategy action
2023-09-22 16:17:41 +02:00
Nuno Góis
b4ef343d22
refactor: clean up some unused imports (#4597)
Should help cleaning up some of these:


![image](https://github.com/Unleash/unleash/assets/14320932/f0bcee80-1ec8-4935-b167-dc8e8b92cda2)
2023-09-01 15:32:15 +01:00
Jaanus Sellin
b2aa3ea049
feat: change request ui updates (#4574) 2023-08-27 20:35:27 +03:00
Mateusz Kwasniewski
cc62db46fb
feat: archive toggles in change request UI (#4563) 2023-08-25 13:38:57 +02:00
Mateusz Kwasniewski
f881103701
fix: diff component for ordering (#4552) 2023-08-23 12:17:59 +02:00
Mateusz Kwasniewski
3227e30f12
feat: Change request reject UI (#4489) 2023-08-15 09:08:26 +02:00
Jaanus Sellin
12dfb1f3eb
feat: add margin for segment constraints (#4481) 2023-08-11 14:07:41 +02:00
Mateusz Kwasniewski
c1fe43fe64
fix: diff no changes (#4480) 2023-08-11 12:31:23 +02:00
Jaanus Sellin
0e4485d0fc
feat: segment constraints in UI (#4472) 2023-08-10 20:12:17 +03:00
Jaanus Sellin
c1314a8ee8
feat: delete segment from CR (#4469) 2023-08-10 15:56:15 +03:00
Thomas Heartman
fe0c7087de
Add name with change info to segment changes (1-1230-update-name-change) (#4459)
Extract and reuse the component that we use for strategy name changes.

## Discussion points:

This impl only shows the new name in the second field (editing segment).
Should we show it in both? Why do we have both? Do we have UI designs
for this?


![image](https://github.com/Unleash/unleash/assets/17786332/5521b1f1-1688-4063-9a16-ec17e4811e91)
2023-08-09 16:15:14 +02:00
Thomas Heartman
2531819222
fix: CR strategy name changes code (#4449)
This change addresses two things that were done in
https://github.com/Unleash/unleash/pull/4004 and that I believe to be
bugs.

1. It shows the previous strategy name also if there was no previous
title. So if there was no previous title, it'll show the strategy name
with a strikethrough and then the new title (see the discussion
section).
2. It changes a `span` component to a [`del`
component](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/del).
I believe the
span was erroneously changed from a `s` component (strikethrough
component) in the linked PR (based on a comment on the PR). This
caused the strikethrough to not be there anymore. However, the `del`
component is semantically more correct and reintroduces the
strikethrough, so it is a better change.
3. It uses [`ins`
elements](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ins)
for names that have changed.

Finally, it removes a redundant pair of curly braces.

How it looks now:


![image](https://github.com/Unleash/unleash/assets/17786332/a9947619-056d-4cd8-8b44-8a562c83ba40)


## Discussion

Regarding point 1: It might be that we don't want to show a
strikethrough through the name of the strategy if there was no previous
title. In that case, the changes related to the first point should be
removed. If we do that, it looks like this:


![image](https://github.com/Unleash/unleash/assets/17786332/aeb6c86c-d283-4703-96e6-c4302d252417)

It makes it harder (impossible, actually) to see when a custom title was
added, but that might be what we want.

But maybe the solution is to also use `ins` elements for new data. That
way the difference is visible (and semantically correct):

![image](https://github.com/Unleash/unleash/assets/17786332/ef13a745-9f9c-4b1a-886f-a7917eb12190)
2023-08-09 12:47:02 +00:00
Thomas Heartman
e7ae1ff714
Feat(#4209): add conflict marker to segment changes (#4447)
In doing so, we extract the shared conflict marker component from the
feature change and reuse it for both feature and segment changes.

Here's what it looks like:

![image](https://github.com/Unleash/unleash/assets/17786332/4a67aa7a-1953-488f-8bcb-6aac006d53e9)


Update: also straightened out the borders of the conflict warning:


![image](https://github.com/Unleash/unleash/assets/17786332/153799f3-cff2-4aa0-8fb0-8e31d1052b9f)
2023-08-08 12:36:45 +00:00
Thomas Heartman
18b5161ade
chore(#4209): minor front-end fixes (#4437)
This PR fixes links to segments from change requests and the bottom
border radius for segment change boxes.

Old border radius:

![image](https://github.com/Unleash/unleash/assets/17786332/e2485e8c-9dab-4fbc-8604-6abd48e13be1)


New border radius: 

![image](https://github.com/Unleash/unleash/assets/17786332/2e2f54b0-37c0-4cec-9902-14b43827beaf)
2023-08-07 13:39:24 +00:00
Jaanus Sellin
7a32eacecb
feat: segments in pending CR screen (#4420) 2023-08-04 15:34:03 +03:00
andreas-unleash
579b08be27
fix: UI improvements on CR reorder strategy (#4375)
- make the blocks that hold the constraints full width
- remove the margin-top and margin-bottom from the parent div + increase
the gap: 20px on this parent div
- remove the margin-bottom from the constraints containers
- add the strategies in a div and add a margin-bottom: 8px

![Screenshot 2023-07-31 at 15 05
51](https://github.com/Unleash/unleash/assets/104830839/68c32324-99c3-4fab-99f0-bde1bf2b43e7)

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-07-31 16:25:06 +03:00
andreas-unleash
988a3a57e8
feat: Change Request on Reorder UI (#4249)
<!-- Thanks for creating a PR! To make it easier for reviewers and
everyone else to understand what your changes relate to, please add some
relevant content to the headings below. Feel free to ignore or delete
sections that you don't think are relevant. Thank you! ❤️ -->
Change request UI for reordering strategies with variants
## About the changes
<!-- Describe the changes introduced. What are they and why are they
being introduced? Feel free to also add screenshots or steps to view the
changes if they're visual. -->

<!-- Does it close an issue? Multiple? -->
Closes #

<!-- (For internal contributors): Does it relate to an issue on public
roadmap? -->
<!--
Relates to [roadmap](https://github.com/orgs/Unleash/projects/10) item:
#
-->

### Important files
<!-- PRs can contain a lot of changes, but not all changes are equally
important. Where should a reviewer start looking to get an overview of
the changes? Are any files particularly important? -->


## Discussion points
<!-- Anything about the PR you'd like to discuss before it gets merged?
Got any questions or doubts? -->

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-07-25 14:12:35 +03:00
Jaanus Sellin
54654c6368
feat: change CR strategy title and name behaviour (#4004) 2023-06-19 13:33:12 +03:00
Jaanus Sellin
6e374be790
feat: strategy tooltip grouping and default (#3986) 2023-06-15 14:29:37 +03:00
Thomas Heartman
f7006642a6
fix: Only show names as changed when titles have changed. (#3843)
Related to [linear task
1-954](https://linear.app/unleash/issue/1-954/disabling-last-strategy-in-change-request-shows-strikethrough).

This PR changes the display logic for showing titles as changed: it
previously fell back to always being `true` if there was a custom title
set for a strategy. This PR makes it so that it only shows as changed if
the title has actually changed, either from one custom title to another,
or to and from the display name.

To accommodate the last bit, it also shows display names with a
strikethrough if the strategy had no title previously, but now it does. This is consistent with how it displays the strategy name if you delete a title from a strategy.


Here's a number of different examples: 


![image](https://github.com/Unleash/unleash/assets/17786332/034bcc01-8715-4052-afec-56caf7edea51)
2023-05-23 12:16:20 +00:00
andreas-unleash
8aadbc8ae9
Fix/cr should activate disabled lag free (#3826)
<!-- Thanks for creating a PR! To make it easier for reviewers and
everyone else to understand what your changes relate to, please add some
relevant content to the headings below. Feel free to ignore or delete
sections that you don't think are relevant. Thank you! ❤️ -->

- Adds change request option to activate disabled strategies UI
- Fixes Disable strategy bug (onSuggestDisable)

## About the changes
<!-- Describe the changes introduced. What are they and why are they
being introduced? Feel free to also add screenshots or steps to view the
changes if they're visual. -->

<!-- Does it close an issue? Multiple? -->
Closes #

<!-- (For internal contributors): Does it relate to an issue on public
roadmap? -->
<!--
Relates to [roadmap](https://github.com/orgs/Unleash/projects/10) item:
#
-->

### Important files
<!-- PRs can contain a lot of changes, but not all changes are equally
important. Where should a reviewer start looking to get an overview of
the changes? Are any files particularly important? -->


## Discussion points
<!-- Anything about the PR you'd like to discuss before it gets merged?
Got any questions or doubts? -->

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-05-23 10:16:09 +03:00
andreas-unleash
adfd79c261
Revert "feat: change requests UI for activate disabled strategies (#3… (#3817)
…787)"

This reverts commit 896b63616d.

<!-- Thanks for creating a PR! To make it easier for reviewers and
everyone else to understand what your changes relate to, please add some
relevant content to the headings below. Feel free to ignore or delete
sections that you don't think are relevant. Thank you! ❤️ -->

## About the changes
<!-- Describe the changes introduced. What are they and why are they
being introduced? Feel free to also add screenshots or steps to view the
changes if they're visual. -->

<!-- Does it close an issue? Multiple? -->
Closes #

<!-- (For internal contributors): Does it relate to an issue on public
roadmap? -->
<!--
Relates to [roadmap](https://github.com/orgs/Unleash/projects/10) item:
#
-->

### Important files
<!-- PRs can contain a lot of changes, but not all changes are equally
important. Where should a reviewer start looking to get an overview of
the changes? Are any files particularly important? -->


## Discussion points
<!-- Anything about the PR you'd like to discuss before it gets merged?
Got any questions or doubts? -->
2023-05-20 09:40:48 +02:00
andreas-unleash
896b63616d
feat: change requests UI for activate disabled strategies (#3787)
<!-- Thanks for creating a PR! To make it easier for reviewers and
everyone else to understand what your changes relate to, please add some
relevant content to the headings below. Feel free to ignore or delete
sections that you don't think are relevant. Thank you! ❤️ -->
Change request UI fix for `shouldActivateDisabledStrategies`
## About the changes
<!-- Describe the changes introduced. What are they and why are they
being introduced? Feel free to also add screenshots or steps to view the
changes if they're visual. -->

<!-- Does it close an issue? Multiple? -->
Closes #

<!-- (For internal contributors): Does it relate to an issue on public
roadmap? -->
<!--
Relates to [roadmap](https://github.com/orgs/Unleash/projects/10) item:
#
-->

### Important files
<!-- PRs can contain a lot of changes, but not all changes are equally
important. Where should a reviewer start looking to get an overview of
the changes? Are any files particularly important? -->


## Discussion points
<!-- Anything about the PR you'd like to discuss before it gets merged?
Got any questions or doubts? -->

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-05-19 13:29:58 +03:00
Tymoteusz Czech
0cb6174f75
Fix/strategy UI improvements (#3766)
https://linear.app/unleash/issue/1-889/ui-adjustments


![image](https://github.com/Unleash/unleash/assets/2625371/e9d851e6-57b5-4deb-b3de-2c0c69fa71dd)

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
Co-authored-by: andreas-unleash <andreas@getunleash.ai>
2023-05-16 11:15:59 +00:00
Jaanus Sellin
bacb73667a
feat: add UI to variant metrics (#3697) 2023-05-08 10:15:26 +00:00
Tymoteusz Czech
3bb09c5ce4
Disable and enable strategies - frontend (#3582)
Signed-off-by: andreas-unleash <andreas@getunleash.ai>
Co-authored-by: andreas-unleash <andreas@getunleash.ai>
2023-04-26 11:41:24 +02:00
Jaanus Sellin
514961632f
feat: edit change requests (#3573) 2023-04-24 15:32:19 +02:00
Mateusz Kwasniewski
c270344cff
feat: visualize adding a default strategy (#3521) 2023-04-14 12:33:04 +02:00