Fredrik Strand Oseberg
d6afe69a0f
Fix/constraint accordion autosave ( #5825 )
...
This PR adds autosave to the constraint accordion which means that when
you add values to it, it will automatically save the constraint locally.
If you unmount the constraint component without any valid values, it
will remove the constraint from the list.
2024-01-10 11:48:15 +01:00
Fredrik Strand Oseberg
59a6ef46e8
fix: separate concerns for ConstraintAccordionList ( #5701 )
...
## Problem
The ConstraintAccordionList component was used in multiple places:
* Playground
* Segment form
* StrategyExecution
* Change requests
* Create strategy
* Edit strategy
This is problematic because some of the views are just pure visual
representations, and other views allow you to interact with and edit the
constraints. This causes a situation where the visual representation
needs to be aware of the implementation details of editing and mutating
constraints. In addition the ConstraintAccordionList is not just a pure
rendering of the list, it also keeps internal state on when to show the
create button and optional headers. This is makes it hard to make
changes when stylings need to be subtly different across components.
## Solution
Taking on the full refactor for this is out of scope, but it's
unfortunate that the ConstraintAccordionList needs all this internal
state. For now I split out the list into it's own component called
ConstraintList. I gathered the functions needed for editing and mutating
the constraints in a reusable hook and isolated the version of the list
used in the new feature strategy edit / create components into it's own
component so that the changes in layout will not affect anything else.
Ideally we should try to move towards a future where the components
don't keep internal state like this but clear boundaries and purposes
for the use.
2023-12-20 15:36:23 +01: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.

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
Mateusz Kwasniewski
a54d53a117
added contraints checking in change request permissions ( #2690 )
2022-12-14 13:00:51 +01:00
olav
774157b8d7
refactor: fix segment permission checks ( #930 )
...
* refactor: use DELETE_SEGMENT permission in segments list
* refactor: clean up segment form mode prop
* refactor: format file
* refactor: fix ConstraintAccordion permission checks
2022-04-29 14:53:28 +02:00
olav
f33ca9db4b
feat: expand constraint operator descriptions (2) ( #858 )
...
* refactor: remove pre-CO constraints list
* refactor: improve constraints dropdown order
* refactor: simplify prop value
* refactor: add missing space around parameter names
* refactor: remove constraint accordion box shadow
* refactor: show operator descriptions in constraints accordion
* refactor: show operator descriptions in constraints dropdown
* refactor: use ConstraintAccordionList in FeatureOverviewExecution
* refactor: add separators between operators in constraints dropdown
* refactor: remove unnecessary comment
2022-04-07 10:31:06 +02:00
Youssef Khedher
eeda7ab5e4
feat: add segments ( #780 )
...
* feat: create segmentation structure and list
* feat: remove unused deps and change route
* feat: change header style and add renderNoSegments
* fix: style table header
* feat: create useSegments hook
* feat: add segmentApi hook
* feat: create segment
* fix: errors
* feat: add contextfields list
* fix: remove user from create segment api
* feat: add form structure
* feat: add SegmentFormStepOne
* fix: tests and routes
* feat: add constraint view
* feat: UI to match the sketch
* feat: add constraint on context select
* fix: duplication
* fix adding constraints
Co-authored-by: olav <mail@olav.io>
* fix: input date not showing up in constraint view
Co-authored-by: olav <mail@olav.io>
* fix: minor bugs
Co-authored-by: olav <mail@olav.io>
* fix: create context modal in segment page
Co-authored-by: olav <mail@olav.io>
* fix: validate constraint before create segment
Co-authored-by: olav <mail@olav.io>
* feat: create useSegment hook
Co-authored-by: olav <mail@olav.io>
* feat: create edit component
Co-authored-by: olav <mail@olav.io>
* refactor: move constraint validation endpoint
* refactor: add missing route snapshot
* refactor: fix segment constraints unsaved/editing state
* refactor: remove create segment from mobile header menu
* refactor: update segments form description
* refactor: extract SegmentFormStepList component
* refactor: add an optional FormTemplate docs link label
* refactor: fix update segment payload
* feat: finish edit component
Co-authored-by: olav <mail@olav.io>
* refactor: move step list above segment form
* fix: update PR based on feedback
Co-authored-by: olav <mail@olav.io>
* refactor: fix constraint validation endpoint path
* refactor: improve constraint state field name
* refactor: extract AutocompleteBox component
* feat: add strategy segment selection
* refactor: add strategy segment previews
* refactor: fix double section separator line
* feat: disable deleting a usable segment
* refactor: warn about segments without constraints
* refactor: update text in delete segment dialogue
* refactur: improve arg names
* refactor: improve index var name
* refactor: clarify steps list logic
* refactor: use a required prop for the segment name
* refactor: use ConditionallyRender for segment deletion
* refactor: fix segments refetch
* refactor: improve CreateUnleashContext component names
* refactor: adjust segment form styles
* refactor: adjust text
* refactor: fix info icon tooltip hover target
* refactor: add missing aria attrs to preview button
* refactor: add strat name to delete segment modal
* refactor: fix segment chip text alighment
* refactor: use bulk endpoint for strategy segments
* refactor: fix imports after merge
Co-authored-by: Fredrik Oseberg <fredrik.no@gmail.com>
Co-authored-by: olav <mail@olav.io>
2022-03-29 09:30:57 +02:00
Youssef Khedher
85950f104a
chore: update paths 🧼 ( #820 )
2022-03-28 09:49:59 +01:00
olav
baae88c7a5
feat: add new feature strategy create/edit pages ( #739 )
...
* refactor: add param helper hooks
* refactor: remove first add strategy link
* refactor: add more types to useStrategies
* refactor: port strategy utils to TS
* refactor: replace rollout strategy icon
* refactor: use a named export for useFeature
* refactor: add more types to useFeature
* refactor: adjust code box styles
* refactor: add missing PermissionButton variant prop
* refactor: add missing button icon label
* refactor: move common feature components
* refactor: fix StrategyConstraints error prop types
* refactor: fix GeneralStrategy prop types
* feat: add new feature strategy create/edit pages
* refactor: remove feature strategies page
* refactor: fix types in GeneralStrategy
* refactor: use ConstraintAccordion on the new pages
* refactor: use ConditionallyRender for remove button
* refactor: rename FeatureStrategyForm component
* refactor: use the Edit icon for feature strategies
* refactor: fix initial edit mode for new constraints
* refactor: add FeatureStrategyMenu to closed accordions
* refactor: allow editing multiple constraints
* refactor: show single-valued constraint value
* refactor: increase feature overview strategy width
* refactor: add remove button to feature overview strategies
* refactor: move createEmptyConstraint to own file
* refactor: disable submit button for invalid constraints
* refactor: fix nested paragraphs on the metrics page
* refactor: move create/edit feature strategy to modal
* refactor: always open new constraints in edit mode
* refactor: use a PermissionButton for the save button
* refactor: remvoe unsaved constraints on cancel
* refactor: clarify useConstraintsValidation logic
* refactor: remove unused strategy descriptions
* refactor: restore Rollout icon
* refactor: remove sidebar modal slide animation
* refactor: avoid constraint accordion toggle on edit/delete
* refactor: truncate long strategy names
* refactor: find the correct remove button
2022-03-09 14:59:24 +01:00