mirror of
https://github.com/silvanocerza/github-gitless-sync.git
synced 2026-07-22 05:41:36 +00:00
Add settings to choose diff view mode
This commit is contained in:
parent
937e576bcc
commit
41642b5174
3 changed files with 46 additions and 10 deletions
|
|
@ -9,6 +9,7 @@ export interface GitHubSyncSettings {
|
|||
syncOnStartup: boolean;
|
||||
syncConfigDir: boolean;
|
||||
conflictHandling: "overwriteLocal" | "ask" | "overwriteRemote";
|
||||
conflictViewMode: "default" | "unified" | "split";
|
||||
showStatusBarItem: boolean;
|
||||
showSyncRibbonButton: boolean;
|
||||
showConflictsRibbonButton: boolean;
|
||||
|
|
@ -26,6 +27,7 @@ export const DEFAULT_SETTINGS: GitHubSyncSettings = {
|
|||
syncOnStartup: false,
|
||||
syncConfigDir: true,
|
||||
conflictHandling: "ask",
|
||||
conflictViewMode: "default",
|
||||
showStatusBarItem: true,
|
||||
showSyncRibbonButton: true,
|
||||
showConflictsRibbonButton: true,
|
||||
|
|
|
|||
|
|
@ -231,6 +231,24 @@ export default class GitHubSyncSettingsTab extends PluginSettingTab {
|
|||
});
|
||||
});
|
||||
|
||||
const diffModeOptions = {
|
||||
default: "Default",
|
||||
unified: "Unified",
|
||||
split: "Split",
|
||||
};
|
||||
new Setting(containerEl)
|
||||
.setName("Conflict resolution view mode")
|
||||
.setDesc("Set which diff view mode should be shown in case of conflicts")
|
||||
.addDropdown((dropdown) => {
|
||||
dropdown
|
||||
.addOptions(diffModeOptions)
|
||||
.setValue(this.plugin.settings.conflictViewMode)
|
||||
.onChange(async (value: keyof typeof diffModeOptions) => {
|
||||
this.plugin.settings.conflictViewMode = value;
|
||||
await this.plugin.saveSettings();
|
||||
});
|
||||
});
|
||||
|
||||
containerEl.createEl("h2", { text: "Extra" });
|
||||
|
||||
new Setting(containerEl)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { IconName, ItemView, Menu, WorkspaceLeaf } from "obsidian";
|
||||
import { IconName, ItemView, Menu, Platform, WorkspaceLeaf } from "obsidian";
|
||||
import { Root, createRoot } from "react-dom/client";
|
||||
import GitHubSyncPlugin from "src/main";
|
||||
import { ConflictFile, ConflictResolution } from "src/sync-manager";
|
||||
|
|
@ -54,18 +54,34 @@ export class ConflictsResolutionView extends ItemView {
|
|||
this.root = createRoot(container);
|
||||
}
|
||||
|
||||
this.root.render(
|
||||
<>
|
||||
<UnifiedView
|
||||
initialFiles={conflicts}
|
||||
onResolveAllConflicts={this.resolveAllConflicts.bind(this)}
|
||||
/>
|
||||
let diffMode = "default";
|
||||
if (this.plugin.settings.conflictViewMode === "default") {
|
||||
if (Platform.isMobile) {
|
||||
diffMode = "unified";
|
||||
} else {
|
||||
diffMode = "split";
|
||||
}
|
||||
} else if (this.plugin.settings.conflictViewMode === "split") {
|
||||
diffMode = "split";
|
||||
} else if (this.plugin.settings.conflictViewMode === "unified") {
|
||||
diffMode = "unified";
|
||||
}
|
||||
|
||||
if (diffMode === "split") {
|
||||
this.root.render(
|
||||
<SplitView
|
||||
initialFiles={conflicts}
|
||||
onResolveAllConflicts={this.resolveAllConflicts.bind(this)}
|
||||
/>
|
||||
</>,
|
||||
);
|
||||
/>,
|
||||
);
|
||||
} else {
|
||||
this.root.render(
|
||||
<UnifiedView
|
||||
initialFiles={conflicts}
|
||||
onResolveAllConflicts={this.resolveAllConflicts.bind(this)}
|
||||
/>,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
async onClose() {
|
||||
|
|
|
|||
Loading…
Reference in a new issue