@@ -17,7 +17,7 @@ import {Controller, useFieldArray, useFormContext, useWatch} from 'react-hook-fo
1717import { cn } from '../../../../utils/cn' ;
1818import { FormFieldError , FormSection } from '../components/layout' ;
1919import i18n from '../i18n' ;
20- import type { Column , FormMode , FormValues , OriginalTableInfo } from '../types' ;
20+ import type { Column , FormMode , FormValues , OriginalTableInfo , TableType } from '../types' ;
2121import {
2222 generateColumnId ,
2323 getAutoincrementDisabledMessage ,
@@ -29,6 +29,7 @@ const b = cn('ydb-table-form-dialog');
2929
3030interface YdbColumnsSectionProps {
3131 mode : FormMode ;
32+ tableType : TableType ;
3233 types : string [ ] ;
3334 pkTypes : Set < string > ;
3435 keyNullable : boolean ;
@@ -37,6 +38,7 @@ interface YdbColumnsSectionProps {
3738
3839export function YdbColumnsSection ( {
3940 mode,
41+ tableType,
4042 types,
4143 pkTypes,
4244 keyNullable,
@@ -146,6 +148,7 @@ export function YdbColumnsSection({
146148 } , [ originalInfo ?. indexes ] ) ;
147149 const primaryKeyColumnNames = primaryOriginalColumns . map ( ( column ) => column . name ) ;
148150 const partitionKeyColumnNames = originalInfo ?. partitionKey ?? [ ] ;
151+ const showDefaultColumn = tableType === 'row' ;
149152
150153 return (
151154 < FormSection title = { i18n ( 'label_columns' ) } >
@@ -163,7 +166,12 @@ export function YdbColumnsSection({
163166 ) : null }
164167 </ div >
165168 ) : null }
166- < div className = { b ( 'columns-table' , { update : mode === 'update' } ) } >
169+ < div
170+ className = { b ( 'columns-table' , {
171+ update : mode === 'update' ,
172+ 'no-default' : ! showDefaultColumn ,
173+ } ) }
174+ >
167175 { showHeader ? (
168176 < React . Fragment >
169177 < div className = { b ( 'columns-head' ) } >
@@ -184,7 +192,11 @@ export function YdbColumnsSection({
184192 </ div >
185193 ) : null }
186194 < div className = { b ( 'columns-head-cell' ) } > { i18n ( 'column_not-null' ) } </ div >
187- < div className = { b ( 'columns-head-cell' ) } > { i18n ( 'column_default' ) } </ div >
195+ { showDefaultColumn ? (
196+ < div className = { b ( 'columns-head-cell' ) } >
197+ { i18n ( 'column_default' ) }
198+ </ div >
199+ ) : null }
188200 < div />
189201 </ div >
190202 < hr className = { b ( 'columns-separator' ) } />
@@ -194,7 +206,11 @@ export function YdbColumnsSection({
194206 { mode === 'update' && primaryOriginalColumns . length > 0 ? (
195207 < React . Fragment >
196208 { primaryOriginalColumns . map ( ( column ) => (
197- < PrimaryColumnRow key = { `pk-${ column . name } ` } column = { column } />
209+ < PrimaryColumnRow
210+ key = { `pk-${ column . name } ` }
211+ column = { column }
212+ showDefaultColumn = { showDefaultColumn }
213+ />
198214 ) ) }
199215 < hr className = { b ( 'columns-separator' ) } />
200216 </ React . Fragment >
@@ -207,10 +223,12 @@ export function YdbColumnsSection({
207223 ( deleted ) => deleted . name === column . name ,
208224 ) ;
209225 const isDeleting = deletedIndex >= 0 ;
226+
210227 return (
211228 < NonPrimaryColumnRow
212229 key = { `existing-${ column . name } ` }
213230 column = { column }
231+ showDefaultColumn = { showDefaultColumn }
214232 isDeleting = { isDeleting }
215233 deleteDisabledMessage = { getDeleteDisabledMessage ( {
216234 columnName : column . name ,
@@ -231,6 +249,7 @@ export function YdbColumnsSection({
231249 key = { field . id }
232250 index = { index }
233251 mode = { mode }
252+ showDefaultColumn = { showDefaultColumn }
234253 typeOptions = { typeOptions }
235254 pkTypes = { pkTypes }
236255 keyNullable = { keyNullable }
@@ -317,28 +336,40 @@ function formatDefaultValue(column: Column) {
317336 return String ( column . defaultValue ) ;
318337}
319338
320- function PrimaryColumnRow ( { column} : { column : Column } ) {
339+ function PrimaryColumnRow ( {
340+ column,
341+ showDefaultColumn,
342+ } : {
343+ column : Column ;
344+ showDefaultColumn : boolean ;
345+ } ) {
321346 return (
322347 < div className = { b ( 'columns-row' , { readonly : true } ) } >
323348 < div className = { b ( 'columns-cell' , { name : true } ) } > { column . name } </ div >
324349 < div className = { b ( 'columns-cell' , { type : true } ) } > { column . type } </ div >
325350 < div className = { b ( 'columns-cell' , { 'not-null' : true } ) } >
326351 { column . notNull ? i18n ( 'value_yes' ) : i18n ( 'value_no' ) }
327352 </ div >
328- < div className = { b ( 'columns-cell' , { default : true } ) } > { formatDefaultValue ( column ) } </ div >
353+ { showDefaultColumn ? (
354+ < div className = { b ( 'columns-cell' , { default : true } ) } >
355+ { formatDefaultValue ( column ) }
356+ </ div >
357+ ) : null }
329358 < div />
330359 </ div >
331360 ) ;
332361}
333362
334363function NonPrimaryColumnRow ( {
335364 column,
365+ showDefaultColumn,
336366 isDeleting,
337367 deleteDisabledMessage,
338368 onDelete,
339369 onUndo,
340370} : {
341371 column : Column ;
372+ showDefaultColumn : boolean ;
342373 isDeleting : boolean ;
343374 deleteDisabledMessage ?: string ;
344375 onDelete : ( ) => void ;
@@ -351,7 +382,11 @@ function NonPrimaryColumnRow({
351382 < div className = { b ( 'columns-cell' , { 'not-null' : true } ) } >
352383 { column . notNull ? i18n ( 'value_yes' ) : i18n ( 'value_no' ) }
353384 </ div >
354- < div className = { b ( 'columns-cell' , { default : true } ) } > { formatDefaultValue ( column ) } </ div >
385+ { showDefaultColumn ? (
386+ < div className = { b ( 'columns-cell' , { default : true } ) } >
387+ { formatDefaultValue ( column ) }
388+ </ div >
389+ ) : null }
355390 < div className = { b ( 'columns-cell' , { action : true } ) } >
356391 { isDeleting ? (
357392 < Button view = "flat" size = "m" onClick = { onUndo } title = { i18n ( 'action_undo' ) } >
@@ -378,6 +413,7 @@ function NonPrimaryColumnRow({
378413interface EditableColumnRowProps {
379414 index : number ;
380415 mode : FormMode ;
416+ showDefaultColumn : boolean ;
381417 typeOptions : SelectOption [ ] ;
382418 pkTypes : Set < string > ;
383419 keyNullable : boolean ;
@@ -390,6 +426,7 @@ interface EditableColumnRowProps {
390426function EditableColumnRow ( {
391427 index,
392428 mode,
429+ showDefaultColumn,
393430 typeOptions,
394431 pkTypes,
395432 keyNullable,
@@ -430,7 +467,7 @@ function EditableColumnRow({
430467 const keyDisabled = ! pkTypes . has ( column . type ) ;
431468 let defaultValueControl : React . ReactNode = null ;
432469
433- if ( mode === 'create' ) {
470+ if ( mode === 'create' && showDefaultColumn ) {
434471 if ( column . key ) {
435472 defaultValueControl = (
436473 < div className = { b ( 'checkbox-control' ) } >
@@ -573,7 +610,9 @@ function EditableColumnRow({
573610 />
574611 ) : null }
575612 </ div >
576- < div className = { b ( 'columns-cell' , { default : true } ) } > { defaultValueControl } </ div >
613+ { showDefaultColumn ? (
614+ < div className = { b ( 'columns-cell' , { default : true } ) } > { defaultValueControl } </ div >
615+ ) : null }
577616 < div className = { b ( 'columns-cell' , { action : true } ) } >
578617 < Button
579618 view = "flat"
0 commit comments