diff --git a/packages/refine/package.json b/packages/refine/package.json index c5b863a2..bf86cf01 100644 --- a/packages/refine/package.json +++ b/packages/refine/package.json @@ -1,6 +1,6 @@ { "name": "@dovetail-v2/refine", - "version": "0.1.16", + "version": "0.1.18-alpha.1", "type": "module", "files": [ "dist", diff --git a/packages/refine/src/App.tsx b/packages/refine/src/App.tsx index b06e178c..52633ea2 100644 --- a/packages/refine/src/App.tsx +++ b/packages/refine/src/App.tsx @@ -157,8 +157,8 @@ function App() { const globalStore = useMemo(() => { return new GlobalStore( { - apiUrl: '/api/sks-proxy/api/v1/clusters/yangfeng-test/proxy', - watchWsApiUrl: 'api/sks-ws/sks-proxy/api/v1/clusters/yangfeng-test/proxy', + apiUrl: '/api/sks-proxy/api/v1/clusters/vm-workload/proxy', + watchWsApiUrl: 'api/sks-ws/sks-proxy/api/v1/clusters/vm-workload/proxy', prefix: 'default', plugins: ProviderPlugins, }, diff --git a/packages/refine/src/components/Form/RefineFormContent.tsx b/packages/refine/src/components/Form/RefineFormContent.tsx index 113c25f1..3c51f209 100644 --- a/packages/refine/src/components/Form/RefineFormContent.tsx +++ b/packages/refine/src/components/Form/RefineFormContent.tsx @@ -102,7 +102,7 @@ export const RefineFormContent = (props: Props diff --git a/packages/refine/src/components/ResourceLink/index.tsx b/packages/refine/src/components/ResourceLink/index.tsx index f343a4f1..5552a1d8 100644 --- a/packages/refine/src/components/ResourceLink/index.tsx +++ b/packages/refine/src/components/ResourceLink/index.tsx @@ -1,8 +1,9 @@ import { Link } from '@cloudtower/eagle'; import { css } from '@linaria/core'; import { useGo, useNavigation } from '@refinedev/core'; - import React from 'react'; +import { ValueDisplay } from '../ValueDisplay'; + type Props = { resourceKind: string; @@ -30,9 +31,11 @@ export const ResourceLink: React.FC = props => { }); }; - return ( + return resourceId ? ( {resourceId} + ) : ( + ); }; diff --git a/packages/refine/src/components/ShowContent/ShowContent.tsx b/packages/refine/src/components/ShowContent/ShowContent.tsx index e073dc28..e8b84f6d 100644 --- a/packages/refine/src/components/ShowContent/ShowContent.tsx +++ b/packages/refine/src/components/ShowContent/ShowContent.tsx @@ -303,7 +303,7 @@ export const ShowContent = (props: Props) => ); const tabs = ( { + tabs={(showConfig.tabs || []).map((tab, tabIndex) => { return { title: tab.title, key: tab.key, @@ -311,7 +311,7 @@ export const ShowContent = (props: Props) =>
{tab.groups?.map(group => { diff --git a/packages/refine/src/hooks/useEagleTable/columns.tsx b/packages/refine/src/hooks/useEagleTable/columns.tsx index 9a760e9f..4fb6bd76 100644 --- a/packages/refine/src/hooks/useEagleTable/columns.tsx +++ b/packages/refine/src/hooks/useEagleTable/columns.tsx @@ -44,7 +44,6 @@ import { PersistentVolumeModel, PersistentVolumeClaimModel, } from '../../models'; -import { parseSi } from '../../utils/unit'; const DashedTitleStyle = css` border-bottom: 1px dashed rgba(107, 128, 167, 0.6); @@ -147,12 +146,12 @@ export const NameSpaceColumnRenderer = ( export const StateDisplayColumnRenderer = < Model extends - | WorkloadModel - | CronJobModel - | PodModel - | ServiceModel - | DaemonSetModel - | JobModel, + | WorkloadModel + | CronJobModel + | PodModel + | ServiceModel + | DaemonSetModel + | JobModel, >( i18n: I18nType ): Column => { @@ -645,13 +644,13 @@ export const PVCapacityColumnRenderer = ( return { key: 'capacity', display: true, - dataIndex: ['spec', 'capacity', 'storage'], + dataIndex: ['storageBytes'], title: i18n.t('dovetail.capacity'), width: 120, sortable: true, align: 'right', render(value) { - return ; + return ; }, }; }; diff --git a/packages/refine/src/models/persistent-volume.ts b/packages/refine/src/models/persistent-volume.ts index 0bb2538f..646f0803 100644 --- a/packages/refine/src/models/persistent-volume.ts +++ b/packages/refine/src/models/persistent-volume.ts @@ -1,6 +1,8 @@ import { GlobalStore, Unstructured } from 'k8s-api-provider'; import type { PersistentVolume } from 'kubernetes-types/core/v1'; +import { get } from 'lodash-es'; import { ResourceState } from 'src/constants'; +import { parseSi } from '../utils/unit'; import { ResourceModel } from './resource-model'; type RequiredPersistentVolume = Required & Unstructured; @@ -47,4 +49,8 @@ export class PersistentVolumeModel extends ResourceModel { get pvcNamespace() { return this._rawYaml.spec.claimRef?.namespace; } + + get storageBytes() { + return parseSi(get(this._rawYaml, ['spec', 'capacity', 'storage'])); + } } diff --git a/packages/refine/src/types/resource.ts b/packages/refine/src/types/resource.ts index 2ee19c06..1b761ab7 100644 --- a/packages/refine/src/types/resource.ts +++ b/packages/refine/src/types/resource.ts @@ -57,6 +57,7 @@ export type ResourceConfig = { transformApplyValues?: (values: Record) => Model['_rawYaml']; formTitle?: string | ((action: 'create' | 'edit') => string); formDesc?: string | ((action: 'create' | 'edit') => string); + labelWidth?: string; formatError?: (errorBody: unknown) => string; refineCoreProps?: UseFormProps['refineCoreProps']; useFormProps?: UseFormProps;