Skip to content

Commit

Permalink
Merge branch '18-bug-file-column-always-resets-to-far-right-position'
Browse files Browse the repository at this point in the history
  • Loading branch information
RafaelGB committed May 4, 2022
2 parents 407d932 + 08afe17 commit 82cd451
Show file tree
Hide file tree
Showing 14 changed files with 41 additions and 31 deletions.
6 changes: 6 additions & 0 deletions docs/changelog.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
## 0.1.2
### Improved
- Now DnD of file column and persist order are supported.

### No longer broken
- Change select cell type no crash the view anymore. This is a but introduced in 0.1.1.
## 0.1.1
### Improved
- The width of columns are adjusted when a column is added of removed
Expand Down
2 changes: 1 addition & 1 deletion manifest.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"id": "dbfolder",
"name": "DB Folder",
"version": "0.1.1",
"version": "0.1.2",
"minAppVersion": "0.14.6",
"description": "Folder with the capability to store and retrieve data from a folder like database",
"author": "RafaelGB",
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "obsidian-dbfolder",
"version": "0.1.1",
"version": "0.1.2",
"description": "This is a sample plugin for Obsidian (https://obsidian.md)",
"main": "main.js",
"scripts": {
Expand Down
15 changes: 8 additions & 7 deletions src/DatabaseView.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { DatabaseColumn } from "cdm/DatabaseModel";
import { TableDataType } from "cdm/FolderModel";
import {
obtainColumnsFromFolder,
Expand Down Expand Up @@ -118,17 +119,17 @@ export class DatabaseView extends TextFileView implements HoverParent {
await this.diskConfig.initDatabaseconfigYaml(
this.plugin.settings.local_settings
);
// Obtain base information about the database
const columns = await obtainColumnsFromFolder(
this.diskConfig.yaml.columns
);
const metatadaColumns = await obtainMetadataColumns();
columns.push(...metatadaColumns);
let yamlColumns: Record<string, DatabaseColumn> =
this.diskConfig.yaml.columns;
// Complete the columns with the metadata columns
yamlColumns = await obtainMetadataColumns(yamlColumns);
// Obtain base information about columns
const columns = await obtainColumnsFromFolder(yamlColumns);
const rows = await adapterTFilesToRows(this.file.parent.path);
// Define table properties
const tableProps: TableDataType = {
columns: columns,
metadataColumns: metatadaColumns,
shadowColumns: columns.filter((col) => col.skipPersist),
data: rows,
skipReset: false,
view: this,
Expand Down
1 change: 1 addition & 0 deletions src/cdm/DatabaseModel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ export type DatabaseColumn = {
key?: string,
position?: number,
isMetadata?: boolean,
skipPersist?: boolean,
csvCandidate?: boolean,
[key: string]: RowType
}
Expand Down
6 changes: 4 additions & 2 deletions src/cdm/FolderModel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { RowType } from "cdm/RowTypeModel";
import { RowSelectOption } from "cdm/RowSelectModel";
import NoteInfo from "services/NoteInfo";
import { TFile } from "obsidian";
import { DatabaseColumn } from "cdm/DatabaseModel";

export type Group = Parameter | Parameters | FolderModel | Models;
type Parameter = {
Expand Down Expand Up @@ -46,7 +47,8 @@ export type TableColumn = {
Cell?: any,
getHeaderProps?: any,
getResizerProps?: any,
isMetadata?: boolean
isMetadata?: boolean,
skipPersist?: boolean,
csvCandidate: boolean
}

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

export type TableDataType = {
columns: TableColumn[],
metadataColumns: TableColumn[],
shadowColumns: TableColumn[],
data: Array<RowDataType>,
skipReset: boolean,
view: DatabaseView,
Expand Down
24 changes: 11 additions & 13 deletions src/components/Columns.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,20 +14,17 @@ import { dbTrim } from "helpers/StylesHelper";
* @param columns
* @returns
*/
export async function obtainMetadataColumns(): Promise<TableColumn[]> {
const columns: TableColumn[] = [];
const metadataColumns: Record<string, DatabaseColumn> = {};
metadataColumns[MetadataColumns.FILE] = MetadataDatabaseColumns.FILE;
metadataColumns[MetadataColumns.ADD_COLUMN] =
MetadataDatabaseColumns.ADD_COLUMN;
export async function obtainMetadataColumns(
yamlColumns: Record<string, DatabaseColumn>
): Promise<Record<string, DatabaseColumn>> {
// If File is not already in the table, add it
yamlColumns[MetadataColumns.FILE] = {
...MetadataDatabaseColumns.FILE,
...(yamlColumns[MetadataColumns.FILE] ?? {}),
};

await Promise.all(
Object.keys(metadataColumns).map(async (columnKey, index) => {
const column = metadataColumns[columnKey];
columns.push(await columnOptions(columnKey, index, column));
})
);
return columns;
yamlColumns[MetadataColumns.ADD_COLUMN] = MetadataDatabaseColumns.ADD_COLUMN;
return yamlColumns;
}

export async function obtainColumnsFromFolder(
Expand Down Expand Up @@ -63,6 +60,7 @@ async function columnOptions(
key: column.key ?? columnKey,
accessor: column.accessor ?? dbTrim(column.label),
isMetadata: column.isMetadata ?? false,
skipPersist: column.skipPersist ?? false,
csvCandidate: column.csvCandidate ?? true,
};
/**
Expand Down
2 changes: 1 addition & 1 deletion src/components/Header.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ export default function Header(headerProps: DatabaseHeaderProps) {

function adjustWidthOfTheColumn() {
const columnNumber =
initialState.columns.length + 1 - initialState.metadataColumns.length;
initialState.columns.length + 1 - initialState.shadowColumns.length;
const columnName = `newColumn${columnNumber}`;
const columnLabel = `New Column ${columnNumber}`;
// Add width of the new column
Expand Down
4 changes: 1 addition & 3 deletions src/components/HeaderMenu.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,6 @@ const HeaderMenu = (headerMenuProps: HeaderMenuProps) => {
},
{
onClick: (e: any) => {
console.log("columnWidthState");
dispatch({
type: ActionTypes.ADD_COLUMN_TO_LEFT,
columnId: id,
Expand All @@ -114,7 +113,6 @@ const HeaderMenu = (headerMenuProps: HeaderMenuProps) => {
},
{
onClick: (e: any) => {
console.log("columnWidthState");
dispatch({
type: ActionTypes.ADD_COLUMN_TO_RIGHT,
columnId: id,
Expand Down Expand Up @@ -226,7 +224,7 @@ const HeaderMenu = (headerMenuProps: HeaderMenuProps) => {

function adjustWidthOfTheColumn() {
const columnNumber =
initialState.columns.length + 1 - initialState.metadataColumns.length;
initialState.columns.length + 1 - initialState.shadowColumns.length;
const columnName = `newColumn${columnNumber}`;
const columnLabel = `New Column ${columnNumber}`;
// Add width of the new column
Expand Down
4 changes: 2 additions & 2 deletions src/components/Table.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import { useDraggableInPortal } from "components/portals/UseDraggableInPortal";
import { c } from "helpers/StylesHelper";
import { HeaderNavBar } from "components/NavBar";
import getColumnsWidthStyle from "components/styles/ColumnWidthStyle";
import { HeaderContext } from "./contexts/HeaderContext";
import { HeaderContext } from "components/contexts/HeaderContext";

const defaultColumn = {
minWidth: 50,
Expand Down Expand Up @@ -287,7 +287,7 @@ export function Table(initialState: TableDataType) {
key={`Draggable-${column.id}`}
draggableId={`${column.id}`}
index={index}
isDragDisabled={(column as any).isMetadata}
isDragDisabled={(column as any).skipPersist}
>
{renderDraggable((provided) => {
const tableCellBaseProps = {
Expand Down
1 change: 1 addition & 0 deletions src/components/portals/PopperSelectPortal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ const PopperSelectPortal = (popperProps: PopperProps) => {
key: (column as any).key,
value: option.label,
row: row,
columnId: column.id,
});
}

Expand Down
2 changes: 2 additions & 0 deletions src/helpers/Constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ export const MetadataDatabaseColumns = Object.freeze({
label: MetadataLabels.FILE,
accessor: MetadataColumns.FILE,
isMetadata: true,
skipPersist: false,
csvCandidate: true,
},
ADD_COLUMN: {
Expand All @@ -53,6 +54,7 @@ export const MetadataDatabaseColumns = Object.freeze({
label: MetadataLabels.ADD_COLUMN,
accessor: MetadataColumns.ADD_COLUMN,
isMetadata: true,
skipPersist: true,
csvCandidate: false,
}
});
Expand Down
2 changes: 1 addition & 1 deletion src/mock/mockUtils.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ export function makeData(count: number): TableDataType {
];
return {
columns: columns,
metadataColumns: [],
shadowColumns: [],
data: data,
skipReset: false,
view: null,
Expand Down
1 change: 1 addition & 0 deletions src/parsers/DatabaseYamlToStringParser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ const DatabaseYamlToStringParser = (databaseConfig: DatabaseYaml): string[] => {
// Table Columns
databaseConfigString.push(`columns:`);
for (const columnName in databaseConfig.columns) {
if (databaseConfig.columns[columnName].skipPersist) continue;
databaseConfigString.push(`${yamlIndent.repeat(1)}${columnName}:`);
for (const columnKey in databaseConfig.columns[columnName]) {
databaseConfigString.push(`${yamlIndent.repeat(2)}${columnKey}: ${databaseConfig.columns[columnName][columnKey]}`);
Expand Down

0 comments on commit 82cd451

Please sign in to comment.