Skip to content
This repository was archived by the owner on Jul 28, 2025. It is now read-only.

Commit 82cd451

Browse files
committed
Merge branch '18-bug-file-column-always-resets-to-far-right-position'
2 parents 407d932 + 08afe17 commit 82cd451

File tree

14 files changed

+41
-31
lines changed

14 files changed

+41
-31
lines changed

docs/changelog.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
## 0.1.2
2+
### Improved
3+
- Now DnD of file column and persist order are supported.
4+
5+
### No longer broken
6+
- Change select cell type no crash the view anymore. This is a but introduced in 0.1.1.
17
## 0.1.1
28
### Improved
39
- The width of columns are adjusted when a column is added of removed

manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"id": "dbfolder",
33
"name": "DB Folder",
4-
"version": "0.1.1",
4+
"version": "0.1.2",
55
"minAppVersion": "0.14.6",
66
"description": "Folder with the capability to store and retrieve data from a folder like database",
77
"author": "RafaelGB",

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "obsidian-dbfolder",
3-
"version": "0.1.1",
3+
"version": "0.1.2",
44
"description": "This is a sample plugin for Obsidian (https://obsidian.md)",
55
"main": "main.js",
66
"scripts": {

src/DatabaseView.tsx

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { DatabaseColumn } from "cdm/DatabaseModel";
12
import { TableDataType } from "cdm/FolderModel";
23
import {
34
obtainColumnsFromFolder,
@@ -118,17 +119,17 @@ export class DatabaseView extends TextFileView implements HoverParent {
118119
await this.diskConfig.initDatabaseconfigYaml(
119120
this.plugin.settings.local_settings
120121
);
121-
// Obtain base information about the database
122-
const columns = await obtainColumnsFromFolder(
123-
this.diskConfig.yaml.columns
124-
);
125-
const metatadaColumns = await obtainMetadataColumns();
126-
columns.push(...metatadaColumns);
122+
let yamlColumns: Record<string, DatabaseColumn> =
123+
this.diskConfig.yaml.columns;
124+
// Complete the columns with the metadata columns
125+
yamlColumns = await obtainMetadataColumns(yamlColumns);
126+
// Obtain base information about columns
127+
const columns = await obtainColumnsFromFolder(yamlColumns);
127128
const rows = await adapterTFilesToRows(this.file.parent.path);
128129
// Define table properties
129130
const tableProps: TableDataType = {
130131
columns: columns,
131-
metadataColumns: metatadaColumns,
132+
shadowColumns: columns.filter((col) => col.skipPersist),
132133
data: rows,
133134
skipReset: false,
134135
view: this,

src/cdm/DatabaseModel.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ export type DatabaseColumn = {
99
key?: string,
1010
position?: number,
1111
isMetadata?: boolean,
12+
skipPersist?: boolean,
1213
csvCandidate?: boolean,
1314
[key: string]: RowType
1415
}

src/cdm/FolderModel.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { RowType } from "cdm/RowTypeModel";
55
import { RowSelectOption } from "cdm/RowSelectModel";
66
import NoteInfo from "services/NoteInfo";
77
import { TFile } from "obsidian";
8+
import { DatabaseColumn } from "cdm/DatabaseModel";
89

910
export type Group = Parameter | Parameters | FolderModel | Models;
1011
type Parameter = {
@@ -46,7 +47,8 @@ export type TableColumn = {
4647
Cell?: any,
4748
getHeaderProps?: any,
4849
getResizerProps?: any,
49-
isMetadata?: boolean
50+
isMetadata?: boolean,
51+
skipPersist?: boolean,
5052
csvCandidate: boolean
5153
}
5254

@@ -58,7 +60,7 @@ export type RowDataType = {
5860

5961
export type TableDataType = {
6062
columns: TableColumn[],
61-
metadataColumns: TableColumn[],
63+
shadowColumns: TableColumn[],
6264
data: Array<RowDataType>,
6365
skipReset: boolean,
6466
view: DatabaseView,

src/components/Columns.tsx

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,17 @@ import { dbTrim } from "helpers/StylesHelper";
1414
* @param columns
1515
* @returns
1616
*/
17-
export async function obtainMetadataColumns(): Promise<TableColumn[]> {
18-
const columns: TableColumn[] = [];
19-
const metadataColumns: Record<string, DatabaseColumn> = {};
20-
metadataColumns[MetadataColumns.FILE] = MetadataDatabaseColumns.FILE;
21-
metadataColumns[MetadataColumns.ADD_COLUMN] =
22-
MetadataDatabaseColumns.ADD_COLUMN;
17+
export async function obtainMetadataColumns(
18+
yamlColumns: Record<string, DatabaseColumn>
19+
): Promise<Record<string, DatabaseColumn>> {
20+
// If File is not already in the table, add it
21+
yamlColumns[MetadataColumns.FILE] = {
22+
...MetadataDatabaseColumns.FILE,
23+
...(yamlColumns[MetadataColumns.FILE] ?? {}),
24+
};
2325

24-
await Promise.all(
25-
Object.keys(metadataColumns).map(async (columnKey, index) => {
26-
const column = metadataColumns[columnKey];
27-
columns.push(await columnOptions(columnKey, index, column));
28-
})
29-
);
30-
return columns;
26+
yamlColumns[MetadataColumns.ADD_COLUMN] = MetadataDatabaseColumns.ADD_COLUMN;
27+
return yamlColumns;
3128
}
3229

3330
export async function obtainColumnsFromFolder(
@@ -63,6 +60,7 @@ async function columnOptions(
6360
key: column.key ?? columnKey,
6461
accessor: column.accessor ?? dbTrim(column.label),
6562
isMetadata: column.isMetadata ?? false,
63+
skipPersist: column.skipPersist ?? false,
6664
csvCandidate: column.csvCandidate ?? true,
6765
};
6866
/**

src/components/Header.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ export default function Header(headerProps: DatabaseHeaderProps) {
8484

8585
function adjustWidthOfTheColumn() {
8686
const columnNumber =
87-
initialState.columns.length + 1 - initialState.metadataColumns.length;
87+
initialState.columns.length + 1 - initialState.shadowColumns.length;
8888
const columnName = `newColumn${columnNumber}`;
8989
const columnLabel = `New Column ${columnNumber}`;
9090
// Add width of the new column

src/components/HeaderMenu.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,6 @@ const HeaderMenu = (headerMenuProps: HeaderMenuProps) => {
100100
},
101101
{
102102
onClick: (e: any) => {
103-
console.log("columnWidthState");
104103
dispatch({
105104
type: ActionTypes.ADD_COLUMN_TO_LEFT,
106105
columnId: id,
@@ -114,7 +113,6 @@ const HeaderMenu = (headerMenuProps: HeaderMenuProps) => {
114113
},
115114
{
116115
onClick: (e: any) => {
117-
console.log("columnWidthState");
118116
dispatch({
119117
type: ActionTypes.ADD_COLUMN_TO_RIGHT,
120118
columnId: id,
@@ -226,7 +224,7 @@ const HeaderMenu = (headerMenuProps: HeaderMenuProps) => {
226224

227225
function adjustWidthOfTheColumn() {
228226
const columnNumber =
229-
initialState.columns.length + 1 - initialState.metadataColumns.length;
227+
initialState.columns.length + 1 - initialState.shadowColumns.length;
230228
const columnName = `newColumn${columnNumber}`;
231229
const columnLabel = `New Column ${columnNumber}`;
232230
// Add width of the new column

src/components/Table.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import { useDraggableInPortal } from "components/portals/UseDraggableInPortal";
2222
import { c } from "helpers/StylesHelper";
2323
import { HeaderNavBar } from "components/NavBar";
2424
import getColumnsWidthStyle from "components/styles/ColumnWidthStyle";
25-
import { HeaderContext } from "./contexts/HeaderContext";
25+
import { HeaderContext } from "components/contexts/HeaderContext";
2626

2727
const defaultColumn = {
2828
minWidth: 50,
@@ -287,7 +287,7 @@ export function Table(initialState: TableDataType) {
287287
key={`Draggable-${column.id}`}
288288
draggableId={`${column.id}`}
289289
index={index}
290-
isDragDisabled={(column as any).isMetadata}
290+
isDragDisabled={(column as any).skipPersist}
291291
>
292292
{renderDraggable((provided) => {
293293
const tableCellBaseProps = {

0 commit comments

Comments
 (0)