(doc: DatabaseDoc, type: FieldType = 'text', name = 'New field')
| 104 | } |
| 105 | |
| 106 | export function addField(doc: DatabaseDoc, type: FieldType = 'text', name = 'New field'): DatabaseDoc { |
| 107 | const field: DbField = { |
| 108 | id: genId(), |
| 109 | name: uniqueFieldName(doc, name), |
| 110 | type, |
| 111 | ...(type === 'select' || type === 'multiSelect' ? { options: [] } : {}) |
| 112 | } |
| 113 | return { |
| 114 | ...doc, |
| 115 | fields: [...doc.fields, field], |
| 116 | views: doc.views.map((v) => |
| 117 | v.type === 'table' ? { ...v, columnOrder: [...(v.columnOrder ?? doc.fields.map((f) => f.id)), field.id] } : v |
| 118 | ) |
| 119 | } |
| 120 | } |
| 121 | |
| 122 | export function renameField(doc: DatabaseDoc, fieldId: string, name: string): DatabaseDoc { |
| 123 | const trimmed = name.trim() |
no test coverage detected