Skip to content

Commit 8b5221a

Browse files
authoredFeb 18, 2025
fix(SchemaViewer): fix sort order and add key icon (#1957)
1 parent 61a8d48 commit 8b5221a

File tree

3 files changed

+30
-4
lines changed

3 files changed

+30
-4
lines changed
 

‎src/containers/Tenant/Schema/SchemaViewer/SchemaViewer.scss

+15
Original file line numberDiff line numberDiff line change
@@ -62,4 +62,19 @@
6262
&__more-badge {
6363
margin-left: var(--g-spacing-1);
6464
}
65+
&__key-icon {
66+
position: absolute;
67+
top: 3.5px;
68+
69+
margin-left: var(--g-spacing-half);
70+
71+
vertical-align: baseline;
72+
}
73+
&__id-wrapper {
74+
position: relative;
75+
76+
display: inline-block;
77+
78+
padding-right: var(--g-spacing-1);
79+
}
6580
}

‎src/containers/Tenant/Schema/SchemaViewer/columns.tsx

+14-1
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
import DataTable from '@gravity-ui/react-data-table';
2+
import {Icon} from '@gravity-ui/uikit';
23

34
import {getColumnWidth} from '../../../../utils/getColumnWidth';
45

56
import i18n from './i18n';
7+
import {b} from './shared';
68
import type {SchemaColumn, SchemaData} from './types';
79

10+
import KeyIcon from '@gravity-ui/icons/svgs/key.svg';
11+
812
export const SCHEMA_COLUMNS_WIDTH_LS_KEY = 'schemaTableColumnsWidth';
913

1014
const SCHEMA_TABLE_COLUMS_IDS = {
@@ -26,7 +30,16 @@ const idColumn: SchemaColumn = {
2630
return i18n('column-title.id');
2731
},
2832
width: 60,
29-
render: ({row}) => row.id,
33+
align: DataTable.RIGHT,
34+
render: ({row}) => {
35+
const keyIcon = <Icon className={b('key-icon')} size={12} data={KeyIcon} />;
36+
return (
37+
<span className={b('id-wrapper')}>
38+
{row.id}
39+
{row.keyColumnIndex === undefined || row.keyColumnIndex === -1 ? null : keyIcon}
40+
</span>
41+
);
42+
},
3043
};
3144
const nameColumn: SchemaColumn = {
3245
name: SCHEMA_TABLE_COLUMS_IDS.name,

‎src/containers/Tenant/Schema/SchemaViewer/prepareData.ts

+1-3
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,8 @@ function prepareRowTableSchema(data: TTableDescription = {}): SchemaData[] {
7070
columnCodec,
7171
};
7272
});
73-
const keyColumns = preparedColumns?.filter((column) => column.keyColumnIndex !== -1) || [];
74-
const otherColumns = preparedColumns?.filter((column) => column.keyColumnIndex === -1) || [];
7573

76-
return [...keyColumns, ...otherColumns];
74+
return preparedColumns ?? [];
7775
}
7876

7977
function prepareExternalTableSchema(data: TExternalTableDescription = {}): SchemaData[] {

0 commit comments

Comments
 (0)