Commit Graph

237 Commits

Author SHA1 Message Date
Liav Weiss eae9e23a58 fix(ws): backend dockerfile (#386)
* feat(ws): Properly containerize backend component #323

Signed-off-by: Liav Weiss (EXT-Nokia) <liav.weiss.ext@nokia.com>

* feat(ws): Properly containerize backend component #323

Signed-off-by: Liav Weiss (EXT-Nokia) <liav.weiss.ext@nokia.com>

* feat(ws): Properly containerize backend component #323

Signed-off-by: Liav Weiss (EXT-Nokia) <liav.weiss.ext@nokia.com>

* mathew: revert typo

Signed-off-by: Mathew Wicks <5735406+thesuperzapper@users.noreply.github.com>

---------

Signed-off-by: Liav Weiss (EXT-Nokia) <liav.weiss.ext@nokia.com>
Signed-off-by: Mathew Wicks <5735406+thesuperzapper@users.noreply.github.com>
Co-authored-by: Liav Weiss (EXT-Nokia) <liav.weiss.ext@nokia.com>
Co-authored-by: Mathew Wicks <5735406+thesuperzapper@users.noreply.github.com>
2025-09-13 17:57:01 -07:00
Mathew Wicks b6e664ccff chore: add OWNERS files with reviewers and labels (#450)
Signed-off-by: Mathew Wicks <5735406+thesuperzapper@users.noreply.github.com>
2025-09-13 17:57:01 -07:00
Andy Stoneberg e3978c28f9 chore: reference ghcr.io images in workspacekind yaml (#305)
Given we have migrated all our images from docker.io to ghcr.io - our `notebooks-v2` branch should reference the "proper" container registry.

This commit updates the code to use:
- `ghcr.io/kubeflow/kubeflow/notebook-servers`

Affected areas:
- `jupyterlab_scipy_180` and `jupyterlab_scipy_190` `imageConfig` entries
- various test files

Signed-off-by: Andy Stoneberg <astonebe@redhat.com>
2025-09-13 17:57:01 -07:00
Jiri Daněk 48b690ed98 ci(ws): archive frontend cypress test results in github actions (#396)
Signed-off-by: Jiri Daněk <jdanek@redhat.com>
2025-09-13 17:57:01 -07:00
Liav Weiss eb70a94274 feat(ws): fix swagger warnings and only generate json output (#424)
* feat(ws): Clean and fix swagger warnings and errors

Signed-off-by: Liav Weiss (EXT-Nokia) <liav.weiss.ext@nokia.com>

* feat(ws): Clean and fix swagger warnings and errors

Signed-off-by: Liav Weiss (EXT-Nokia) <liav.weiss.ext@nokia.com>

---------

Signed-off-by: Liav Weiss (EXT-Nokia) <liav.weiss.ext@nokia.com>
Co-authored-by: Liav Weiss (EXT-Nokia) <liav.weiss.ext@nokia.com>
2025-09-13 17:57:01 -07:00
Mathew Wicks 4c91627eb0 feat(ws): validate podMetadata for ws and wsk in webhook (#436)
Signed-off-by: Mathew Wicks <5735406+thesuperzapper@users.noreply.github.com>
2025-09-13 17:57:01 -07:00
Guilherme Caponetto eb8d3acb93 chore(ws): show ESLint errors from local rules on IDE (#439)
Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>
2025-09-13 17:57:01 -07:00
Guilherme Caponetto c0b8f7b300 chore(ws): lint frontend on each commit (#440)
Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>
2025-09-13 17:57:01 -07:00
Charles Thao 234dee0f9e feat(ws): Notebooks v2 Create Workspace Kind (#365)
* Add routes for Workspace Kind Create

Signed-off-by: Charles Thao <cthao@redhat.com>

* Implement method selection step for Workspace Kind Create wizard

Signed-off-by: Charles Thao <cthao@redhat.com>

* Add styling

Signed-off-by: Charles Thao <cthao@redhat.com>

* Add type guards for yaml file upload

Signed-off-by: Charles Thao <cthao@redhat.com>

* Add properties step to WorkspaceKindForm

Signed-off-by: Charles Thao <cthao@redhat.com>

* Add image step to WorkspaceKindForm

Signed-off-by: Charles Thao <cthao@redhat.com>

* Add empty steps and switch Method step to radio buttons

Signed-off-by: Charles Thao <cthao@redhat.com>

* Add step description to Workspace Kind Form

Signed-off-by: Charles Thao <cthao@redhat.com>

* Migrate Workspace Kind Form to utilize Toggle Group

Signed-off-by: Charles Thao <cthao@redhat.com>

* Disable Form View when YAML is not uploaded or valid

Signed-off-by: Charles Thao <cthao@redhat.com>

* Allow VScode to discover local ESLint rules

Signed-off-by: Charles Thao <cthao@redhat.com>

* Styling organization improvements + Refactor types

Signed-off-by: Charles Thao <cthao@redhat.com>

---------

Signed-off-by: Charles Thao <cthao@redhat.com>
2025-09-13 17:57:01 -07:00
Paulo Rego 0c87cb6352 chore(ws): allowed theme configuration during frontend start (#438)
Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>
2025-09-13 17:57:01 -07:00
Guilherme Caponetto ca7f65697d feat(ws): add `WorkspaceKindSummary` page and other improvements around it (#415)
* Minor refactorings and initial work for the Workspace Kind summary page

Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>

* feat(ws): added links from workspace kind details drawer to workspace kinds details page (#1)

Signed-off-by: Paulo Rego <832830+paulovmr@users.noreply.github.com>

* Enable workspace filtering by namespace in the WorkspaceKind summary page

Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>

* Update Pause/Start action response types according to backend

Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>

* Fix WorkspaceKind logo href

Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>

* Replace placeholders for GPU data with real values in WorkspaceKind summary page

Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>

* Allow columns to be hidden in the WorkspaceTable

Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>

* feat(ws): added links from workspace kind details drawer namespace tab to workspace kinds details page (#2)

Signed-off-by: Paulo Rego <832830+paulovmr@users.noreply.github.com>

* Improve types around Filter component

Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>

* feat: Add Workspace Actions Context and related components

- Introduced WorkspaceActionsContext to manage workspace actions such as view, edit, delete, start, restart, and stop.
- Created WorkspaceActionsContextProvider to encapsulate the context logic and provide it to child components.
- Implemented WorkspaceKindSummary and Workspaces components to utilize the new context for handling workspace actions.
- Added polling for refreshing workspaces at a default interval.
- Enhanced WorkspaceTable to support row actions for workspaces.
- Updated various components to include sortable and filterable data fields.
- Refactored WorkspaceStartActionModal and WorkspaceStopActionModal to handle optional onActionDone callback.
- Added loading and error handling components for better user experience.

Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>

* feat: Add buildWorkspaceList function and integrate into mockAllWorkspaces

Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>

* refactor: Update mock data and formatting for workspace activity timestamps

Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>

* feat: Implement usePolling hook and refactor workspace actions in Workspaces and WorkspaceKindSummary components

Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>

* refactor: Update column key usage in ExpandedWorkspaceRow and adjust workspace actions visibility in Workspaces component

Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>

* Make mocked workspace list deterministic

Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>

* feat: Enhance WorkspaceTable with additional columns and filtering capabilities

- Added 'namespace', 'gpu', and 'idleGpu' columns to WorkspaceTable.
- Updated filtering logic to support new columns in WorkspaceTable.
- Refactored useWorkspaces hook to remove unnecessary parameters related to idle and GPU filtering.
- Modified WorkspaceKindSummary and its expandable card to utilize new filtering functionality.
- Updated WorkspaceUtils to include a method for formatting workspace idle state.
- Adjusted Filter component to support generic filtered column types.
- Updated Workspaces page to hide new columns as needed.

Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>

* refactor: Improve sorting functionality in WorkspaceTable by utilizing specific types for sortable columns

Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>

* Adjustments after rebase

Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>

* Format with prettier

Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>

---------

Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>
Signed-off-by: Paulo Rego <832830+paulovmr@users.noreply.github.com>
Co-authored-by: Paulo Rego <832830+paulovmr@users.noreply.github.com>
2025-09-13 17:57:01 -07:00
Paulo Rego 72b3ba9062 chore(ws): Upgrade vulnerable packages (#427)
Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>
2025-09-13 17:57:01 -07:00
Paulo Rego 99538a7f81 chore(ws): enforce named imports for react hooks (#414)
Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>
2025-09-13 17:57:01 -07:00
Jenny cd02eb46c6 fix(ws): Expose active nav item on initial Workspaces page load (#419)
Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>
2025-09-13 17:57:01 -07:00
Jenny 4ce7875e19 fix(ws): Action Button Alignment and Jupyter Image Display (#408)
Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

add icon to workspaceKindsColumns interface

fix actions cell alignment

move card title to fix spacing
2025-09-13 17:57:01 -07:00
Paulo Rego 92661f09b6 chore(ws): Upgrade vulnerable package webpack-dev-server (#407)
Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>
2025-09-13 17:57:01 -07:00
Paulo Rego 0ac6f9f067 feat(ws): added namespaces tab to workspace kind details (#406)
Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>
2025-09-13 17:57:01 -07:00
Paulo Rego 5d91ee05b2
chore: Upgrade vulnerable packages (#578)
Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>
2025-09-10 13:39:37 +00:00
Charles Thao aaf69dd28b
chore: Organize .gitignore for frontend (#577)
Signed-off-by: Charles Thao <cthao@redhat.com>
2025-09-10 13:38:37 +00:00
Charles Thao 027b59f47b
feat: Integrate Namespace with Central Dashboard UI (#521)
Signed-off-by: Charles Thao <cthao@redhat.com>
2025-09-09 11:31:36 +00:00
Guilherme Caponetto 0fbbe7a0ee
feat: integrate the frontend shared libraries (#552)
Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>
2025-09-04 19:13:12 +00:00
Marina Koushnir d5652e6361
feat(ws): frontend Makefile to support deploy (#534)
* feat(ws): frontend Makefile to support deploy

Signed-off-by: CI Bot <mkoushni@redhat.com>

* mathew: fix 1

Signed-off-by: Mathew Wicks <5735406+thesuperzapper@users.noreply.github.com>

---------

Signed-off-by: CI Bot <mkoushni@redhat.com>
Signed-off-by: Mathew Wicks <5735406+thesuperzapper@users.noreply.github.com>
Co-authored-by: Mathew Wicks <5735406+thesuperzapper@users.noreply.github.com>
2025-09-04 19:04:12 +00:00
Guilherme Caponetto 9061874973
feat: enhance husky pre-commit hook to conditionally run lint checks for frontend changes (#549)
Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>
2025-08-27 13:18:21 +00:00
Guilherme Caponetto 33319b1661
feat: add environment configuration files for frontend (#536)
Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>
2025-08-26 14:37:20 +00:00
Noa Limoy ebd5d2c3cb
feat(ws): add manifests for frontend (#487)
* feat(ws): Define k8s workload manifest for frontend component #404

Signed-off-by: Noa <nlimoy@redhat.com>

* fix: virtual-service tweaks from review

Signed-off-by: Andy Stoneberg <astonebe@redhat.com>

---------

Signed-off-by: Noa <nlimoy@redhat.com>
Signed-off-by: Andy Stoneberg <astonebe@redhat.com>
Co-authored-by: Andy Stoneberg <astonebe@redhat.com>
2025-08-21 17:34:06 +00:00
Liav Weiss 5a93916d50
feat(ws): add manifests for backend (#455)
* feat(ws): Define k8s workload manifest for backend component #324

Signed-off-by: Liav Weiss (EXT-Nokia) <liav.weiss.ext@nokia.com>

* feat(ws): Define k8s workload manifest for backend component #324

Signed-off-by: Liav Weiss (EXT-Nokia) <liav.weiss.ext@nokia.com>

* feat(ws): add Istio AuthorizationPolicy for nb-backend #324

Signed-off-by: Liav Weiss (EXT-Nokia) <liav.weiss.ext@nokia.com>

* feat(ws): Define k8s workload manifest for backend component + istio - kubeflow#324

Signed-off-by: Liav Weiss (EXT-Nokia) <liav.weiss.ext@nokia.com>

---------

Signed-off-by: Liav Weiss (EXT-Nokia) <liav.weiss.ext@nokia.com>
Co-authored-by: Liav Weiss (EXT-Nokia) <liav.weiss.ext@nokia.com>
2025-08-21 17:09:06 +00:00
Paulo Rego 586a879a95
fix: fixed workspace kind summary breadcrumb navigation (#535)
Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>
2025-08-20 18:17:05 +00:00
Jenny 6b58425d4a
chore: Upgrade PatternFly to 6.3.0 (#532)
Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>
2025-08-20 18:16:06 +00:00
Guilherme Caponetto 265d5af568
test: add unit tests for frontend hooks (#527)
Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>
2025-08-12 12:31:11 +00:00
Paulo Rego 2286b2c0d4
fix(ws): fixed filter by labels during workspace creation (#524)
Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>
2025-08-07 19:59:55 +00:00
Charles Thao 198be84a43
feat: Refactor APP_PREFIX to const.ts (#523)
Signed-off-by: Charles Thao <cthao@redhat.com>
2025-08-07 19:58:56 +00:00
Guilherme Caponetto 811a186b40
ci(ws): run client generator on frontend PR check (#519)
Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>
2025-08-07 18:20:56 +00:00
Charles Thao 03c14dd2d7
feat: Conditionally render masthead on Production and Standalone modes (#516)
Signed-off-by: Charles Thao <cthao@redhat.com>
2025-08-05 19:10:54 +00:00
Charles Thao ede4708f1a
feat: Make Frontend Basepath Configurable via APP_PREFIX env variable (#517)
* Make Frontend Basepath Configurable via APP_PREFIX env variable

Signed-off-by: Charles Thao <cthao@redhat.com>

* Fix Cypress tests

Signed-off-by: Charles Thao <cthao@redhat.com>

---------

Signed-off-by: Charles Thao <cthao@redhat.com>
2025-08-05 18:25:53 +00:00
Guilherme Caponetto f25a22eac3
feat(ws): automate generation of types and HTTP client layer from Swagger definitions (#496)
Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>
2025-08-05 12:28:53 +00:00
Paulo Rego 1dad98b8c8
chore(ws): comment workspace details logs and pod template tabs while they are not supported (#512)
* chore(ws): comment workspace details logs tab while it is not supported

Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>

* chore(ws): comment workspace details pod template tab while it is not supported

Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>

---------

Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>
2025-08-05 12:27:53 +00:00
Andy Stoneberg 4f0a29dec0
chore(ws): update swag to 1.16.6 for required fields (#489)
- Updated swaggo/swag from v1.16.4 to v1.16.6 in go.mod and Makefile.
- Added required fields to various OpenAPI definitions in docs.go and swagger.json for better validation via `--requiredByDefault` flag
    - `swag` `v1.16.6` contains a commit we authored to treat `json:omitempty` as `required: false`.  That, in conjunction with `--requiredByDefault` flag, allows us to generate models with proper _required-ness_

Signed-off-by: Andy Stoneberg <astonebe@redhat.com>
2025-07-31 17:48:49 +00:00
Andy Stoneberg 639c24e81b
feat(ws): add @ID swag annotation to handlers (#488)
- added @ID annotations for all API routes to populate operationId Swagger attribute
- split GetWorkspacesHandler into 2 separate handlers to account for @ID needing to be unique-per-route
    - GetAllWorkspacesHandler now services GET /workspaces
    - GetWorkspacesByNamespaceHandler now services GET /workspaces/{namespace}
    - non-exported getWorkspacesHandler function contains all business logic that existed in GetWorkspacesHandler
- Adjusted test cases to align with the new handler names.

Signed-off-by: Andy Stoneberg <astonebe@redhat.com>
2025-07-31 17:18:49 +00:00
Guilherme Caponetto d71a3f51ef
feat(ws): use workspace counts from API response (#508)
Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>
2025-07-29 19:20:47 +00:00
Paulo Rego 3fb42da2c0
feat(ws): fix workspaces table pagination (#506)
Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>
2025-07-29 19:19:47 +00:00
Jenny 63600e8d9f
fix(ws): Refactors toolbar and filter logic to fix "clear all filters" bug in workspace list view (#502)
Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

remove comment

fix(ws): remove set to first page when filters applied

Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

fix tests for filterWorkspacesTest

fix single filter test

Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

fix bug in ws kind table
2025-07-29 11:18:47 +00:00
Guilherme Caponetto 32484d6eae
fix(ws): update frontend to support latest start/stop API changes (#503)
Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>
2025-07-25 17:35:01 +00:00
Andy Stoneberg 843e5c3c48
feat(ws): add workspace pause actions backend API (#340)
related: #298

- Added PauseActionWorkspaceHandler to handle pausing or unpausing a given workspace
- Introduced single new route for starting and pausing workspaces in the API.
    - `api/v1/workspaces/{namespace}/{name}/actions/pause`
			- pausing or unpausing operation is specified in the request payload
- Created a new WorkspaceActionPauseEnvelope type for successful responses.
- Leveraging JSONPatch / client.RawPatch to ensure Workspace in "valid state" before attempting action
    - for `start`: `spec.paused` must be `true`, and `status.state` must be `Paused`
    - for `pause`: `spec.paused` must be `false`
        - note: I would love to have a `status.state` check here of `status.state != Paused`, but that type of comparison is not supported in [JSONPatch](https://datatracker.ietf.org/doc/html/rfc6902#section-4.6)
- Added tests for the new API, including success and error cases.
- Updated README/OpenAPI documentation to include the new endpoints.

---

As an interesting "edge case" worth calling out, the following payload is currently honored by the API:
```
{
  "data": {}
}
```

Given the `WorkspaceActionPause` struct is simply `{"paused": true|false}`, the "empty" Envelope presented above deserializes the JSON using the zero value of `bool` (which is `false`).

Our validation today is always performed against the **deserialized** object, and as such impossible to distinguish the following cases:
```
{
  "data": {}
}
```

vs

```
{
  "data": {
    "paused": false
  }
}
```

The effort and (relative) complexity to prevent this and return a `422` in this scenario was not deemed "worth it" for the time being.  As a result, a test case has been added for this specific scenario to at minimum document this "strange" behavior.
- Clients, however, should **NOT** rely on this behavior and always provide a fully defined `WorkspaceActionPause` JSON object to ensure future compatibility.

Signed-off-by: Andy Stoneberg <astonebe@redhat.com>
2025-07-24 20:05:02 +00:00
Noa Limoy e747ad5e84
feat(ws): containerize frontend component (#394)
Signed-off-by: Noa <nlimoy@redhat.com>
2025-07-24 19:41:01 +00:00
Roee Afriat 0db1fd7c72
feat(ws): add ws counts to backend wsk model (#368)
Signed-off-by: rafriat <roee.afriat.ext@nokia.com>
Co-authored-by: rafriat <roee.afriat.ext@nokia.com>
2025-07-24 19:36:01 +00:00
Dominik Kawka f3fc2e200d
improve: UX Enhancements in workspace summary (#473)
* Workspace Kinds Summary:UX Enchancements

Signed-off-by: DominikKawka <dkawka@redhat.com>

* frontend build and test fix

Signed-off-by: DominikKawka <dkawka@redhat.com>

* replaced inline styling with PF utility classes

Signed-off-by: DominikKawka <dkawka@redhat.com>

* prettier check

Signed-off-by: DominikKawka <dkawka@redhat.com>

* fix(ws): apply left alignment and fix padding to match other items

Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

* prettier check

Signed-off-by: DominikKawka <dkawka@redhat.com>

* resolved merge conflict

Signed-off-by: DominikKawka <dkawka@redhat.com>

* fixed merge conflicts

Signed-off-by: DominikKawka <dkawka@redhat.com>

---------

Signed-off-by: DominikKawka <dkawka@redhat.com>
Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>
Signed-off-by: Dominik Kawka  <31955648+dominikkawka@users.noreply.github.com>
Co-authored-by: Jenny <32821331+jenny-s51@users.noreply.github.com>
2025-07-24 15:17:01 +00:00
Jenny a721c5073d
fix(ws): Apply sentence case to text elements across UI (#497)
Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

fix(ws): align nav item names with corresponding page headers

Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

fix(ws): apply sentence case, fix tests

Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

fix(ws): apply correct sentence case to TableTitleText
2025-07-24 13:29:01 +00:00
Paulo Rego bd66a26175
chore(ws): Upgrade vulnerable packages (#495)
Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>
2025-07-23 11:15:00 +00:00
Paulo Rego 345481885e
chore(ws): enforce component specific imports (#475)
Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>
2025-07-21 19:26:58 +00:00
Jenny 3542f848de
fix(ws): Implement dual scrolling for workspace kind wizard (#484)
Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

fix(ws): remove extra DrawerPanelBody

remove unused file

Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

fix(ws): remove comment and hide drawer on previousStep callback

Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

fix(ws): when navigating between wizard steps, show drawer for steps that have drawer content
2025-07-21 15:08:58 +00:00