Skip to content

Conversation

@liavweiss
Copy link

Implementation for #203

workspaceKindsPage20.3.mp4

I also changed the deprecatedMessage to be shown only in case of Active status.

Copy link

@paulovmr paulovmr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @liavweiss , thanks for the PR! I left a few comments inline. Also, as discussed in Slack, IMO this table should not have expandable rows, only the drawer for details.

path: '/',
},
{
label: 'WorkspaceKinds',

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
label: 'WorkspaceKinds',
label: 'Workspace Kinds',

onClick: () => viewDetailsClick(workspaceKind),
},
{
isSeparator: true,

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No need for a separator here.

const [expandedWorkspaceKindsNames, setExpandedWorkspaceKindsNames] = React.useState<string[]>(
[],
);
const [selectedWorkspaceKind, setSelectedWorkspacekind] = React.useState<WorkspaceKind | null>(

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
const [selectedWorkspaceKind, setSelectedWorkspacekind] = React.useState<WorkspaceKind | null>(
const [selectedWorkspaceKind, setSelectedWorkspaceKind] = React.useState<WorkspaceKind | null>(

numberOfWorkspaces: 'Number Of Workspaces',
};

const filterableColumns = {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please consider adding the Description column here.

{workspaceKind.deprecated ? (
<Label color="red">Deprecated</Label>
) : (
<Tooltip content={workspaceKind.deprecationMessage}>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Tooltip should be used when deprecated is true and not used when it is false.


const filterableColumns = {
name: 'Name',
deprecated: 'Status',

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For status filtering, I believe we should have the options listed, instead of a text input. Similarly to the "Attribute Search" PatternFly example.

@google-oss-prow google-oss-prow bot added size/XL and removed size/L labels Apr 6, 2025
Liav Weiss (EXT-Nokia) added 3 commits April 9, 2025 17:22
…mockup kubeflow#203

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

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

Signed-off-by: Liav Weiss (EXT-Nokia) <liav.weiss.ext@nokia.com>
@liavweiss liavweiss force-pushed the workspaceKinds/viewer#203 branch from a60d2b2 to 3601fb8 Compare April 9, 2025 14:24
Copy link

@paulovmr paulovmr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @liavweiss , I've commented just a few minor changes. Also, please consider adding useCallbackand useMemo hooks to the variables across the file. Thanks!

const [activeSortDirection, setActiveSortDirection] = React.useState<'asc' | 'desc' | null>(null);

const getSortableRowValues = (workspaceKind: WorkspaceKind): (string | boolean | number)[] => {
const { icon, name, description, deprecated, numOfWrokspaces } = {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
const { icon, name, description, deprecated, numOfWrokspaces } = {
const { icon, name, description, deprecated, numberOfWorkspaces } = {

name: 'Name',
description: 'Description',
deprecated: 'Status',
numberOfWorkspaces: 'Number Of Workspaces',

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
numberOfWorkspaces: 'Number Of Workspaces',
numberOfWorkspaces: 'Number of workspaces',

Copy link
Member

@jenny-s51 jenny-s51 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work on this @liavweiss - left a comment below.

<Th screenReaderText="Primary action" />
</Tr>
</Thead>
{filteredWorkspaceKinds.map((workspaceKind, rowIndex) => (
Copy link
Member

@jenny-s51 jenny-s51 Apr 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While testing the status filters, I noticed we’re not currently handling the empty state when the filtered list has a length of 0.

Screenshot 2025-04-11 at 4 22 07 PM

Could we add a check on the filtered results and render the empty state table in that case? WDYT @liavweiss ?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

emptyState.mp4

…mockup kubeflow#203

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

@paulovmr paulovmr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @liavweiss . There are a few other variables, such as event handlers and UI elements, that are missing useCallback and useMemo hooks, could you please add to them as well? Thanks!

setIsStatusMenuOpen(!isStatusMenuOpen);
};

function onStatusSelect(

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
function onStatusSelect(
const onStatusSelect = (

function onStatusSelect(
event: React.MouseEvent | undefined,
itemId: string | number | undefined,
) {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
) {
) => {

Liav Weiss (EXT-Nokia) added 2 commits April 16, 2025 10:42
…mockup kubeflow#203

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

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

/ok-to-test

Copy link

@paulovmr paulovmr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

@google-oss-prow google-oss-prow bot added the lgtm label Apr 16, 2025
Copy link
Member

@jenny-s51 jenny-s51 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Empty state looks great - thanks for the fix @liavweiss ! 🙌 We should also surface the empty state in the Workspaces table for consistency.

I’ll file a couple of follow-up issues:

  1. Empty state for Workspaces table - When filters return 0 results, we should show an empty state (same as the Workspace Kind viewer in this PR). @liavweiss would you be able to add this in a follow-up PR?
Screenshot 2025-04-16 at 10 24 51 AM
  1. Chip label padding - Needs a small tweak to align properly. I’ll create and assign this one to myself and get a fix in soon.
Screenshot 2025-04-16 at 10 13 02 AM

/lgtm

Copy link
Member

@jenny-s51 jenny-s51 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left one more comment @liavweiss - otherwise LGTM!

Comment on lines 42 to 45
{
label: 'Workspaces',
path: '/',
},
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
{
label: 'Workspaces',
path: '/',
},
{
label: 'Workspaces',
path: '/',
},

This can be removed - it's currently rendering an additional nav item "Workspaces" and duplicating the Workspaces table there. We are already rendering the Workspaces table from the "Notebooks" nav item.

…mockup kubeflow#203

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

@jenny-s51 jenny-s51 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

@google-oss-prow google-oss-prow bot added the lgtm label Apr 22, 2025
@ederign
Copy link
Member

ederign commented Apr 22, 2025

/lgtm

@ederign
Copy link
Member

ederign commented Apr 22, 2025

/approve

@google-oss-prow
Copy link

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: ederign

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@google-oss-prow google-oss-prow bot merged commit 4d565db into kubeflow:notebooks-v2 Apr 22, 2025
7 checks passed
@github-project-automation github-project-automation bot moved this from Needs Triage to Done in Kubeflow Notebooks Apr 22, 2025
@ederign
Copy link
Member

ederign commented Apr 22, 2025

@paulovmr, probably we will review all those UIs later, but I'm merging this as this will be incremental deliveries!

caponetto pushed a commit to caponetto/kubeflow-notebooks that referenced this pull request Apr 30, 2025
…mockup kubeflow#203 (kubeflow#237)

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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>
thaorell pushed a commit to thaorell/kubeflow-notebooks that referenced this pull request May 1, 2025
…mockup kubeflow#203 (kubeflow#237)

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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>
Mohamed-ben-khemis pushed a commit to Mohamed-ben-khemis/notebooks that referenced this pull request May 5, 2025
…mockup kubeflow#203 (kubeflow#237)

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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>
@liavweiss liavweiss deleted the workspaceKinds/viewer#203 branch May 18, 2025 14:57
mkoushni pushed a commit to mkoushni/notebooks that referenced this pull request May 28, 2025
…mockup kubeflow#203 (kubeflow#237)

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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>
Signed-off-by: CI Bot <mkoushni@redhat.com>
mkoushni pushed a commit to mkoushni/notebooks that referenced this pull request Jun 4, 2025
…mockup kubeflow#203 (kubeflow#237)

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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>
Signed-off-by: CI Bot <mkoushni@redhat.com>
andyatmiami pushed a commit to andyatmiami/kubeflow-notebooks that referenced this pull request Jun 13, 2025
…mockup kubeflow#203 (kubeflow#237)

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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

* feat(ws): Notebooks 2.0 // Frontend // Workspace Kind Viewer // Live mockup kubeflow#203

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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

4 participants