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

Commit 2532d54

Browse files
committed
Merge branch '251-sticky-first-column-opacity-with-add-new-row-form'
2 parents 53e882e + 84d8f7c commit 2532d54

File tree

13 files changed

+50
-10
lines changed

13 files changed

+50
-10
lines changed

src/Settings.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,13 @@ export class SettingsManager {
6767
settingsManager: this,
6868
containerEl: settingBody,
6969
local: local,
70-
errors: {},
71-
view: view,
72-
columns: view.columns
70+
errors: {}
7371
};
72+
if (view) {
73+
settingHandlerResponse.view = view;
74+
settingHandlerResponse.columns = view.columns;
75+
76+
}
7477
this.constructSettingBody(settingHandlerResponse);
7578
}
7679

src/cdm/SettingsModel.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export interface GlobalSettings {
1616
enable_debug_mode: boolean;
1717
logger_level_info: string;
1818
media_settings: MediaSettings;
19+
enable_dnd: boolean;
1920
}
2021

2122
export interface LocalSettings {

src/components/NavBar.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ export function NavBar(navBarProps: NavBarProps) {
2020
const columns = tableState.columns((state) => state.columns);
2121
const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);
2222
const open = Boolean(anchorEl);
23-
console.log(`NavBar menu is open? => ${open}`);
2423
const handleMenuClose = () => {
2524
setAnchorEl(null);
2625
};

src/components/Table.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,12 @@ export function Table(tableData: TableDataType) {
320320
key={`${headerGroup.id}-${headerGroupIndex}-dnd-provider`}
321321
debugMode={globalConfig.enable_debug_mode}
322322
backend={HTML5Backend}
323-
context={view.getWindow().createFragment()}
323+
context={
324+
(globalConfig.enable_debug_mode,
325+
globalConfig.enable_dnd
326+
? activeWindow
327+
: activeDocument.createElement("div"))
328+
}
324329
>
325330
{headerGroup.headers
326331
.filter(

src/components/TableHeader.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ export default function TableHeader(headerProps: TableHeaderProps) {
9292
{...{
9393
onMouseDown: header.getResizeHandler(),
9494
onTouchStart: header.getResizeHandler(),
95+
9596
className: `resizer ${
9697
header.column.getIsResizing() ? "isResizing" : ""
9798
}`,

src/components/index/Database.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ export function createDatabase(tableProps: TableDataType): JSX.Element {
88

99
export function Database(tableProps: TableDataType) {
1010
const tableStore = useTableStore(tableProps.view);
11-
1211
return (
1312
<React.StrictMode>
1413
<Table {...tableProps} tableStore={tableStore} />

src/helpers/Constants.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,7 @@ export const YAML_INDENT = Object.freeze(" ");
272272
export const DEFAULT_SETTINGS: DatabaseSettings = {
273273
global_settings: {
274274
enable_debug_mode: false,
275+
enable_dnd: false,
275276
logger_level_info: 'error',
276277
media_settings: {
277278
enable_media_view: DEFAULT_COLUMN_CONFIG.enable_media_view,

src/settings/DeveloperSection.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { SettingHandlerResponse } from 'settings/handlers/AbstractSettingHandler
33
import { LoggerToggleHandler } from 'settings/handlers/developer/LoggerToggleHandler';
44
import { TableStateToggleHandler } from 'settings/handlers/developer/TableStateToggleHandler';
55
import { LoggerLevelInfoDropDownHandler } from 'settings/handlers/developer/LoggerLevelInfoDropDownHandler';
6+
import { DnDToggleHandler } from 'settings/handlers/developer/DnDToggleHandler';
67
import { AbstractChain } from 'patterns/AbstractFactoryChain';
78
import { AbstractHandler } from 'patterns/AbstractHandler';
89

@@ -19,6 +20,7 @@ class DeveloperSetttingsSection extends AbstractChain<SettingHandlerResponse> {
1920
}
2021
protected getHandlers(): AbstractHandler<SettingHandlerResponse>[] {
2122
return [
23+
new DnDToggleHandler(),
2224
new LoggerToggleHandler(),
2325
new LoggerLevelInfoDropDownHandler(),
2426
new TableStateToggleHandler()

src/settings/handlers/AbstractSettingHandler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export type SettingHandlerResponse = {
1313
local: boolean,
1414
errors: Record<string, string[]>,
1515
view?: DatabaseView,
16-
columns: TableColumn[],
16+
columns?: TableColumn[],
1717
}
1818

1919
export abstract class AbstractSettingsHandler implements SettingHandler {
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import { add_toggle } from "settings/SettingsComponents";
2+
import { AbstractSettingsHandler, SettingHandlerResponse } from "settings/handlers/AbstractSettingHandler";
3+
export class DnDToggleHandler extends AbstractSettingsHandler {
4+
settingTitle: string = 'Enable drag and drop of columns';
5+
handle(settingHandlerResponse: SettingHandlerResponse): SettingHandlerResponse {
6+
const { settingsManager, containerEl, local } = settingHandlerResponse;
7+
// pass if modal opened from local settings
8+
if (!local) {
9+
const dnd_togle_promise = async (value: boolean): Promise<void> => {
10+
// set debug mode
11+
const update_global_settings = settingsManager.plugin.settings.global_settings;
12+
update_global_settings.enable_dnd = value;
13+
// update settings
14+
await settingsManager.plugin.updateSettings({
15+
global_settings: update_global_settings
16+
});
17+
}
18+
add_toggle(
19+
containerEl,
20+
this.settingTitle,
21+
"WARNING: enabling this will make the DnD of obsidian fail (for now). Restart the application after disabling this.",
22+
settingsManager.plugin.settings.global_settings.enable_dnd,
23+
dnd_togle_promise
24+
);
25+
}
26+
return this.goNext(settingHandlerResponse);
27+
}
28+
}

0 commit comments

Comments
 (0)