+ {/*
-
+*/}
{' '}
By default, forks are named the same as their original project. You can customize the name to distinguish it
diff --git a/web/src/components/project/view-selector.tsx b/web/src/components/project/view-selector.tsx
index a7fe6631..971d7ddd 100644
--- a/web/src/components/project/view-selector.tsx
+++ b/web/src/components/project/view-selector.tsx
@@ -61,6 +61,19 @@ export const ViewSelector = (props: ViewSelectorProps) => {
);
+ const [hoverCount, setHoverCount] = useState(0);
+ const [showOverlayTimer, setShowOverlayTimer] = useState(200)
+
+ const handleMouseEnter = () => {
+ if (hoverCount === 0) {
+ setShowOverlayTimer(1600)
+ } else if (hoverCount === 4) {
+ setShowOverlayTimer(200)
+ }
+ setHoverCount((prevCount) => (prevCount + 1) % 5);
+ };
+
+
return (
@@ -77,8 +90,8 @@ export const ViewSelector = (props: ViewSelectorProps) => {
) : null}
-
-
+
+
{
}),
}}
className="top-z w-100"
- options={
- projectViews?.views.map((view) => ({
+ options={[
+ { value: null, label: "Default view" },
+ ...(projectViews?.views.map((view) => ({
view: view.name,
description: view.description || 'No description',
value: view.name,
label: `${view.name} | ${view.description || 'No description'}`,
- })) || []
- }
+ })) || [])
+ ]}
onChange={(selectedOption) => {
- if (selectedOption === null) {
+ if (selectedOption === null || selectedOption.value === null) {
setView(undefined);
searchParams.delete('view');
setSearchParams(searchParams);
@@ -113,7 +127,7 @@ export const ViewSelector = (props: ViewSelectorProps) => {
}, 50);
}}
isDisabled={projectViews?.views.length === 0 || projectViewsIsLoading}
- isClearable
+ isClearable={false}
placeholder={
projectViewsIsLoading
? 'Loading views...'
@@ -121,7 +135,11 @@ export const ViewSelector = (props: ViewSelectorProps) => {
? 'No views available'
: 'Select a view'
}
- value={view === undefined ? null : { view: view, description: view, value: view, label: view }}
+ value={
+ view === undefined
+ ? { value: null, label: "Default view" }
+ : { view: view, description: view, value: view, label: view }
+ }
/>
diff --git a/web/src/components/tables/sample-table.tsx b/web/src/components/tables/sample-table.tsx
index d6d2d9df..a54c4e86 100644
--- a/web/src/components/tables/sample-table.tsx
+++ b/web/src/components/tables/sample-table.tsx
@@ -103,10 +103,10 @@ export const SampleTable = (props: Props) => {
}
});
}}
- hiddenColumns={{
- indicators: true,
- columns: ph_id_col === -1 ? [] : [numColumns - 1],
- }}
+ // hiddenColumns={{
+ // indicators: true,
+ // columns: ph_id_col === -1 ? [] : [numColumns - 1],
+ // }}
dropdownMenu={true}
minCols={2}
minRows={minRows || 50}
diff --git a/web/src/pages/Namespace.tsx b/web/src/pages/Namespace.tsx
index a77d4dfb..0ed353c1 100644
--- a/web/src/pages/Namespace.tsx
+++ b/web/src/pages/Namespace.tsx
@@ -179,8 +179,33 @@ export const NamespacePage = () => {
) : null}
- <>
- {namespace === user?.login && user?.orgs && user.orgs.length > 0 && (
+ {user?.orgs && user.orgs.length > 0 && (
+ <>
+ {user?.orgs.some(org => org === namespace) && (
+
+
+ You belong to this organization.
+
+
+ )}
+
+
+ Organizations you belong to:{' '}
+
+ {user?.orgs.map((org) => (
+
+
+
+ {' '}
+
+ ))}
+
+
+
+ >
+ )}
+ {namespace === user?.login && user?.orgs && user.orgs.length > 0 && (
+ <>
Organizations you belong to:{' '}
@@ -195,14 +220,14 @@ export const NamespacePage = () => {
- )}
{/**/}
{/* Total projects: {numberWithCommas(namespaceInfo?.count || 0)}{' '}*/}
{/*
*/}
{/**/}
{/* Total schemas: {numberWithCommas(schemas?.count || 0)}{' '}*/}
{/*
*/}
- >
+ >
+ )}