Compare commits

..

No commits in common. "master" and "0.2.0" have entirely different histories.

12 changed files with 105 additions and 326 deletions

View file

@ -8,8 +8,6 @@ If you like the see your notes on a Calendar and easily find them using a certai
## Configure
> IMPORTANT: Please make sure that you check the date formatting of the library, which is used by this plugin following [Day.js Date Format Link](https://day.js.org/docs/en/display/format).
### 01 YAML Option as Date Source
1. Go to the plugin settings

View file

@ -1,7 +1,7 @@
{
"id": "oz-calendar",
"name": "OZ Calendar",
"version": "0.3.4",
"version": "0.1.9",
"minAppVersion": "0.15.0",
"description": "View your notes in Calendar using any YAML key with date",
"author": "Ozan Tellioglu",

View file

@ -1,6 +1,6 @@
{
"name": "oz-calendar",
"version": "0.3.4",
"version": "0.1.9",
"description": "View your notes in Calendar using any YAML key with date",
"main": "main.js",
"scripts": {
@ -14,9 +14,9 @@
"devDependencies": {
"@types/common-tags": "^1.8.1",
"@types/node": "^16.11.6",
"@types/react": "18.2.38",
"@types/react": "17.0.2",
"@types/react-calendar": "^3.9.0",
"@types/react-dom": "18.2.17",
"@types/react-dom": "17.0.2",
"@typescript-eslint/eslint-plugin": "5.29.0",
"@typescript-eslint/parser": "5.29.0",
"builtin-modules": "3.3.0",
@ -30,9 +30,10 @@
"@popperjs/core": "^2.11.6",
"common-tags": "^1.8.2",
"dayjs": "1.11.7",
"react": "18.2.0",
"preact": "10",
"react": "npm:@preact/compat@17.0.2",
"react-calendar": "4.0.0",
"react-dom": "18.2.0",
"react-dom": "npm:@preact/compat@17.0.2",
"react-icons": "4.8.0"
}
}

View file

@ -29,9 +29,10 @@ export default function MyCalendar(params: { plugin: OZCalendarPlugin }) {
const createNote = () => {
let currentSelectedDay: Date = selectedDay;
let dateNow: Date = new Date();
let dateNow: Date = null;
setSelectedDay((selectedDay) => {
currentSelectedDay = selectedDay;
dateNow = new Date();
return selectedDay;
});
// Add now time details to the existing date if current date
@ -77,7 +78,7 @@ export default function MyCalendar(params: { plugin: OZCalendarPlugin }) {
return (
<div className="dots-wrapper">
{[...Array(Math.min(dotsCount, 2))].map((_, index) => (
<RxDotFilled key={index} viewBox="0 0 15 15" />
<RxDotFilled viewBox="0 0 15 15" />
))}
{dotsCount > 2 && <span>+{dotsCount - 2}</span>}
</div>
@ -86,31 +87,15 @@ export default function MyCalendar(params: { plugin: OZCalendarPlugin }) {
return null;
};
const customTileClass = ({ activeStartDate, date, view }: CalendarTileProperties) => {
// Assign a custom class in case the day is the current day
let today = new Date();
return date.getFullYear() === today.getFullYear() &&
date.getMonth() === today.getMonth() &&
date.getDate() === today.getDate()
? 'oz-calendar-plugin-today'
: '';
};
const fixedCalendarClass = plugin.settings.fixedCalendar ? 'fixed' : '';
return (
<div className={'oz-calendar-plugin-view ' + fixedCalendarClass}>
<div className={'oz-calendar-plugin-view' + (plugin.settings.fixedCalendar ? ' fixed' : '')}>
<Calendar
onChange={setSelectedDay}
value={selectedDay}
maxDetail="month"
minDetail="month"
showWeekNumbers={plugin.settings.showWeekNumbers}
view="month"
tileContent={customTileContent}
tileClassName={customTileClass}
calendarType={plugin.settings.calendarType}
showFixedNumberOfWeeks={plugin.settings.fixedCalendar}
activeStartDate={activeStartDate}
onActiveStartDateChange={(props) => {
if (props.action === 'next') {

View file

@ -8,7 +8,6 @@ import OZCalendarPlugin from 'main';
import { isMouseEvent, openFile } from '../util/utils';
import { Menu, TFile } from 'obsidian';
import { VIEW_TYPE } from 'view';
import { OZNote } from 'types';
interface NoteListComponentParams {
selectedDay: Date;
@ -58,18 +57,13 @@ export default function NoteListComponent(params: NoteListComponentParams) {
}
};
const selectedDayNotes: OZNote[] = useMemo(() => {
const selectedDayNotes = useMemo(() => {
const selectedDayIso = dayjs(selectedDay).format('YYYY-MM-DD');
let sortedList: OZNote[] = [];
if (selectedDayIso in plugin.OZCALENDARDAYS_STATE) {
sortedList = plugin.OZCALENDARDAYS_STATE[selectedDayIso].filter(
(ozItem) => ozItem.type === 'note'
) as OZNote[];
}
let sortedList =
selectedDayIso in plugin.OZCALENDARDAYS_STATE ? plugin.OZCALENDARDAYS_STATE[selectedDayIso] : [];
sortedList = sortedList.sort((a, b) => {
if (plugin.settings.sortingOption === 'name-rev')
[a.displayName, b.displayName] = [b.displayName, a.displayName];
return a.displayName.localeCompare(b.displayName, 'en', { numeric: true });
if (plugin.settings.sortingOption === 'name-rev') [a, b] = [b, a];
return extractFileName(a).localeCompare(extractFileName(b), 'en', { numeric: true });
});
return sortedList;
}, [selectedDay, forceValue]);
@ -117,32 +111,22 @@ export default function NoteListComponent(params: NoteListComponentParams) {
/>
</div>
</div>
<div
className={
'oz-calendar-notelist-container ' +
(plugin.settings.fileNameOverflowBehaviour == 'scroll' ? 'oz-calendar-overflow-scroll' : '')
}>
<div className="oz-calendar-notelist-container">
{selectedDayNotes.length === 0 && (
<div className="oz-calendar-note-no-note">
<RiPhoneFindLine className="oz-calendar-no-note-icon" />
No note found
</div>
)}
{selectedDayNotes.map((ozNote) => {
{selectedDayNotes.map((notePath) => {
return (
<div
className={
'oz-calendar-note-line' +
(plugin.settings.fileNameOverflowBehaviour == 'hide'
? ' oz-calendar-overflow-hide'
: '')
}
id={ozNote.path}
key={ozNote.path}
onClick={(e) => openFilePath(e, ozNote.path)}
onContextMenu={(e) => triggerFileContextMenu(e, ozNote.path)}>
className="oz-calendar-note-line"
id={notePath}
onClick={(e) => openFilePath(e, notePath)}
onContextMenu={(e) => triggerFileContextMenu(e, notePath)}>
<HiOutlineDocumentText className="oz-calendar-note-line-icon" />
<span>{ozNote.displayName}</span>
<span>{extractFileName(notePath)}</span>
</div>
);
})}

View file

@ -2,7 +2,7 @@ import { CachedMetadata, Menu, Plugin, TAbstractFile, TFile, addIcon } from 'obs
import { OZCalendarView, VIEW_TYPE } from 'view';
import dayjs from 'dayjs';
import customParseFormat from 'dayjs/plugin/customParseFormat';
import { DayChangeCommandAction, OZCalendarDaysMap, fileToOZItem } from 'types';
import { DayChangeCommandAction, OZCalendarDaysMap } from 'types';
import { OZCAL_ICON } from './util/icons';
import { OZCalendarPluginSettings, DEFAULT_SETTINGS, OZCalendarPluginSettingsTab } from './settings/settings';
import { CreateNoteModal } from 'modal';
@ -110,14 +110,6 @@ export default class OZCalendarPlugin extends Plugin {
);
},
});
this.addCommand({
id: 'oz-calendar-open-leaf',
name: 'Open OZ Calendar',
callback: () => {
this.openOZCalendarLeaf({ showAfterAttach: true });
},
});
}
onunload() {
@ -140,13 +132,13 @@ export default class OZCalendarPlugin extends Plugin {
* @param date
* @param filePath
*/
addFilePathToState = (date: string, file: TFile) => {
addFilePathToState = (date: string, filePath: string) => {
let newStateMap = this.OZCALENDARDAYS_STATE;
// if exists, add the new file path
if (date in newStateMap) {
newStateMap[date] = [...newStateMap[date], fileToOZItem({ note: file })];
newStateMap[date] = [...newStateMap[date], filePath];
} else {
newStateMap[date] = [fileToOZItem({ note: file })];
newStateMap[date] = [filePath];
}
this.OZCALENDARDAYS_STATE = newStateMap;
};
@ -160,10 +152,8 @@ export default class OZCalendarPlugin extends Plugin {
let changeFlag = false;
let newStateMap = this.OZCALENDARDAYS_STATE;
for (let k of Object.keys(newStateMap)) {
if (newStateMap[k].some((ozItem) => ozItem.type === 'note' && ozItem.path === filePath)) {
newStateMap[k] = newStateMap[k].filter((ozItem) => {
return !(ozItem.type === 'note' && ozItem.path === filePath);
});
if (newStateMap[k].contains(filePath)) {
newStateMap[k] = newStateMap[k].filter((p) => p !== filePath);
changeFlag = true;
}
}
@ -185,7 +175,7 @@ export default class OZCalendarPlugin extends Plugin {
if (k === this.settings.yamlKey) {
let fmValue = String(fm[k]);
let parsedDayISOString = dayjs(fmValue, this.settings.dateFormat).format('YYYY-MM-DD');
this.addFilePathToState(parsedDayISOString, file);
this.addFilePathToState(parsedDayISOString, file.path);
changeFlag = true;
}
}
@ -217,11 +207,11 @@ export default class OZCalendarPlugin extends Plugin {
let parsedDayISOString = dayjs(fmValue, this.settings.dateFormat).format('YYYY-MM-DD');
// If date doesn't exist, create a new one
if (!(parsedDayISOString in this.OZCALENDARDAYS_STATE)) {
this.addFilePathToState(parsedDayISOString, file);
this.addFilePathToState(parsedDayISOString, file.path);
} else {
// if date exists and note is not in the date list
if (!(file.path in this.OZCALENDARDAYS_STATE[parsedDayISOString])) {
this.addFilePathToState(parsedDayISOString, file);
this.addFilePathToState(parsedDayISOString, file.path);
}
}
}
@ -237,16 +227,14 @@ export default class OZCalendarPlugin extends Plugin {
let changeFlag = false;
if (file instanceof TFile && file.extension === 'md') {
for (let k of Object.keys(this.OZCALENDARDAYS_STATE)) {
for (let ozItem of this.OZCALENDARDAYS_STATE[k]) {
if (ozItem.type === 'note' && ozItem.path === oldPath) {
for (let filePath of this.OZCALENDARDAYS_STATE[k]) {
if (filePath === oldPath) {
let oldIndex = this.OZCALENDARDAYS_STATE[k].indexOf(filePath);
if (this.settings.dateSource === 'yaml') {
ozItem.path = file.path;
ozItem.displayName = file.basename;
this.OZCALENDARDAYS_STATE[k][oldIndex] = file.path;
changeFlag = true;
} else if (this.settings.dateSource === 'filename') {
this.OZCALENDARDAYS_STATE[k] = this.OZCALENDARDAYS_STATE[k].filter((ozItem) => {
return !(ozItem.type === 'note' && ozItem.path === oldPath);
});
this.OZCALENDARDAYS_STATE[k].splice(oldIndex, 1);
changeFlag = true;
}
}
@ -255,17 +243,23 @@ export default class OZCalendarPlugin extends Plugin {
}
// Make sure that you scan the new file name for filename source
if (this.settings.dateSource === 'filename' && dayjs(file.name, this.settings.dateFormat).isValid()) {
let parsedDayISOString = dayjs(file.name, this.settings.dateFormat).format('YYYY-MM-DD');
if (parsedDayISOString in this.OZCALENDARDAYS_STATE) {
this.OZCALENDARDAYS_STATE[parsedDayISOString] = [
...this.OZCALENDARDAYS_STATE[parsedDayISOString],
fileToOZItem({ note: file }),
];
} else {
this.OZCALENDARDAYS_STATE[parsedDayISOString] = [fileToOZItem({ note: file })];
if (file.name.length >= this.settings.dateFormat.length) {
let cleanFileName = file.name.substring(0, this.settings.dateFormat.length);
if (
this.settings.dateSource === 'filename' &&
dayjs(cleanFileName, this.settings.dateFormat, true).isValid()
) {
let parsedDayISOString = dayjs(cleanFileName, this.settings.dateFormat).format('YYYY-MM-DD');
if (parsedDayISOString in this.OZCALENDARDAYS_STATE) {
this.OZCALENDARDAYS_STATE[parsedDayISOString] = [
...this.OZCALENDARDAYS_STATE[parsedDayISOString],
file.path,
];
} else {
this.OZCALENDARDAYS_STATE[parsedDayISOString] = [file.path];
}
changeFlag = true;
}
changeFlag = true;
}
// If change happened force update the component
@ -279,15 +273,16 @@ export default class OZCalendarPlugin extends Plugin {
handleCreate = (file: TAbstractFile) => {
if (file instanceof TFile && file.extension === 'md' && this.settings.dateSource === 'filename') {
if (dayjs(file.name, this.settings.dateFormat).isValid()) {
let parsedDayISOString = dayjs(file.name, this.settings.dateFormat).format('YYYY-MM-DD');
let cleanFileName = file.name.substring(0, this.settings.dateFormat.length);
if (dayjs(cleanFileName, this.settings.dateFormat, true).isValid()) {
let parsedDayISOString = dayjs(cleanFileName, this.settings.dateFormat).format('YYYY-MM-DD');
if (parsedDayISOString in this.OZCALENDARDAYS_STATE) {
this.OZCALENDARDAYS_STATE[parsedDayISOString] = [
...this.OZCALENDARDAYS_STATE[parsedDayISOString],
fileToOZItem({ note: file }),
file.path,
];
} else {
this.OZCALENDARDAYS_STATE[parsedDayISOString] = [fileToOZItem({ note: file })];
this.OZCALENDARDAYS_STATE[parsedDayISOString] = [file.path];
}
}
this.calendarForceUpdate();
@ -330,7 +325,7 @@ export default class OZCalendarPlugin extends Plugin {
// Check the FM keys vs the provided key by the user in settings
for (let k of Object.keys(fm)) {
if (k === this.settings.yamlKey) {
let fmValue = String(fm[k]);
let fmValue = String(fm[k]).substring(0, this.settings.dateFormat.length);
// Parse the date with provided date format
let parsedDayJsDate = dayjs(fmValue, this.settings.dateFormat);
// Take only YYYY-MM-DD part fromt the date as String
@ -339,10 +334,10 @@ export default class OZCalendarPlugin extends Plugin {
if (parsedDayISOString in OZCalendarDays) {
OZCalendarDays[parsedDayISOString] = [
...OZCalendarDays[parsedDayISOString],
fileToOZItem({ note: mdFile }),
mdFile.path,
];
} else {
OZCalendarDays[parsedDayISOString] = [fileToOZItem({ note: mdFile })];
OZCalendarDays[parsedDayISOString] = [mdFile.path];
}
}
}
@ -350,15 +345,16 @@ export default class OZCalendarPlugin extends Plugin {
} else if (this.settings.dateSource === 'filename') {
let dateFormatLength = this.settings.dateFormat.length;
if (mdFile.name.length >= dateFormatLength) {
if (dayjs(mdFile.name, this.settings.dateFormat).isValid()) {
let parsedDayISOString = dayjs(mdFile.name, this.settings.dateFormat).format('YYYY-MM-DD');
let value = mdFile.name.substring(0, dateFormatLength);
if (dayjs(value, this.settings.dateFormat, true).isValid()) {
let parsedDayISOString = dayjs(value, this.settings.dateFormat).format('YYYY-MM-DD');
if (parsedDayISOString in OZCalendarDays) {
OZCalendarDays[parsedDayISOString] = [
...OZCalendarDays[parsedDayISOString],
fileToOZItem({ note: mdFile }),
mdFile.path,
];
} else {
OZCalendarDays[parsedDayISOString] = [fileToOZItem({ note: mdFile })];
OZCalendarDays[parsedDayISOString] = [mdFile.path];
}
}
}

View file

@ -46,13 +46,10 @@ export class CreateNoteModal extends Modal {
let addSpace = contentEl.createEl('div', { cls: 'oz-calendar-modal-addspacediv ' });
// Create - Cancel Buttons
const createButton = contentEl.createEl('button', {
text: 'Create Note',
cls: this.plugin.settings.newNoteCancelButtonReverse ? 'oz-calendar-modal-float-right' : '',
});
const createButton = contentEl.createEl('button', { text: 'Create Note' });
const cancelButton = contentEl.createEl('button', {
text: 'Cancel',
cls: this.plugin.settings.newNoteCancelButtonReverse ? '' : 'oz-calendar-modal-float-right',
cls: 'oz-calendar-modal-float-right',
});
cancelButton.addEventListener('click', () => {
thisModal.close();
@ -60,41 +57,32 @@ export class CreateNoteModal extends Modal {
const onClickCreateButton = async () => {
let newFileName = fileNameInputEl.value;
if (newFileName === '') {
if (newFileName !== '') {
let defFolderSrc = folderInputEl ? folderInputEl.value : this.plugin.settings.defaultFolder;
let defFolder = this.app.vault.getAbstractFileByPath(defFolderSrc);
if (defFolder && defFolder instanceof TFolder) {
// Default Text Preparation for File with YAML and Date
let defaultNewFileText = stripIndents`
---
${this.plugin.settings.yamlKey}: ${dayjs(this.destinationDate).format(
this.plugin.settings.dateFormat
)}
---
`;
// Create the MD File and close the modal
await createNewMarkdownFile(
this.plugin,
defFolder,
newFileName,
this.plugin.settings.dateSource === 'yaml' ? defaultNewFileText : ''
);
thisModal.close();
} else {
new Notice('Folder couldnt be found in the Vault');
}
} else {
new Notice('You didnt provide file name');
return;
}
if (newFileName.includes('/') && !this.plugin.settings.allowSlashhDuringCreate) {
new Notice('You can not have a slash (/) in file name');
return;
}
let defFolderSrc = folderInputEl ? folderInputEl.value : this.plugin.settings.defaultFolder;
let defFolder = this.app.vault.getAbstractFileByPath(defFolderSrc);
if (!defFolder || !(defFolder instanceof TFolder)) {
new Notice('Folder couldnt be found in the Vault');
return;
}
// Default Text Preparation for File with YAML and Date
let defaultNewFileText = stripIndents`
---
${this.plugin.settings.yamlKey}: ${dayjs(this.destinationDate).format(this.plugin.settings.dateFormat)}
---
`;
// Create the MD File and close the modal
await createNewMarkdownFile(
this.plugin,
defFolder as TFolder,
newFileName,
this.plugin.settings.dateSource === 'yaml' ? defaultNewFileText : ''
);
thisModal.close();
};
createButton.addEventListener('click', onClickCreateButton);

View file

@ -6,12 +6,9 @@ export type OpenFileBehaviourType = 'new-tab' | 'new-tab-group' | 'current-tab'
export type SortingOption = 'name' | 'name-rev';
export type DateSourceOption = 'filename' | 'yaml';
export type NewNoteDateType = 'current-date' | 'active-date';
export type CalendarType = 'US' | 'ISO 8601';
export type OverflowBehaviour = 'scroll' | 'hide' | 'next-line';
export interface OZCalendarPluginSettings {
openViewOnStart: boolean;
calendarType: CalendarType;
dateSource: DateSourceOption;
yamlKey: string;
dateFormat: string;
@ -19,18 +16,13 @@ export interface OZCalendarPluginSettings {
defaultFileNamePrefix: string;
fixedCalendar: boolean;
showDestinationFolderDuringCreate: boolean;
allowSlashhDuringCreate: boolean;
openFileBehaviour: OpenFileBehaviourType;
sortingOption: SortingOption;
newNoteDate: NewNoteDateType;
newNoteCancelButtonReverse: boolean;
fileNameOverflowBehaviour: OverflowBehaviour;
showWeekNumbers: boolean;
}
export const DEFAULT_SETTINGS: OZCalendarPluginSettings = {
openViewOnStart: true,
calendarType: 'ISO 8601',
dateSource: 'yaml',
yamlKey: 'created',
dateFormat: 'YYYY-MM-DD hh:mm:ss',
@ -38,13 +30,9 @@ export const DEFAULT_SETTINGS: OZCalendarPluginSettings = {
defaultFileNamePrefix: 'YYYY-MM-DD',
fixedCalendar: true,
showDestinationFolderDuringCreate: true,
allowSlashhDuringCreate: false,
openFileBehaviour: 'current-tab',
sortingOption: 'name',
newNoteDate: 'current-date',
newNoteCancelButtonReverse: false,
fileNameOverflowBehaviour: 'hide',
showWeekNumbers: false,
};
export class OZCalendarPluginSettingsTab extends PluginSettingTab {
@ -97,36 +85,6 @@ export class OZCalendarPluginSettingsTab extends PluginSettingTab {
});
});
new Setting(containerEl)
.setName('Calendar Type')
.setDesc(
`
Select the calendar type to be displayed. While the week in the US type starts from Sunday,
in the ISO 8601 type, the week starts from Monday`
)
.addDropdown((dropdown) => {
dropdown
.addOption('ISO 8601', 'ISO 8601')
.addOption('US', 'US')
.setValue(this.plugin.settings.calendarType)
.onChange((newValue: CalendarType) => {
this.plugin.settings.calendarType = newValue;
this.plugin.saveSettings();
this.plugin.calendarForceUpdate();
});
});
new Setting(containerEl)
.setName('Show Week Numbers')
.setDesc('Enable if you want to have week numbers within the calendar view')
.addToggle((toggle) => {
toggle.setValue(this.plugin.settings.showWeekNumbers).onChange((newValue) => {
this.plugin.settings.showWeekNumbers = newValue;
this.plugin.saveSettings();
this.plugin.calendarForceUpdate();
});
});
new Setting(containerEl)
.setName('Open File Behaviour')
.setDesc('Select the behaviour you want to have when you click on file name in the calendar view')
@ -306,35 +264,6 @@ export class OZCalendarPluginSettingsTab extends PluginSettingTab {
});
});
new Setting(containerEl)
.setName('Allow to provide slash during the file creation')
.setDesc(
`
Enable this option if you want to allow file creation modal to allow slash (/) in the filename, which will help creating a folder.
i.e. if this option is enabled and you provide an input like Folder1/File1, this will create Folder1 and place File1 under it. If
the folder exists, the file will be placed under the existing folder. This will respect the default folder location and create the
new folder as a subfolder under the default one.
`
)
.addToggle((toggle) => {
toggle.setValue(this.plugin.settings.allowSlashhDuringCreate).onChange((newValue) => {
this.plugin.settings.allowSlashhDuringCreate = newValue;
this.plugin.saveSettings();
});
});
new Setting(containerEl)
.setName('Reverse direction of Cancel and New Note Buttons')
.setDesc(
`Enable this setting to change the direction of Cancel and New Note buttons within the New Note Creation Modal`
)
.addToggle((toggle) => {
toggle.setValue(this.plugin.settings.newNoteCancelButtonReverse).onChange((newValue) => {
this.plugin.settings.newNoteCancelButtonReverse = newValue;
this.plugin.saveSettings();
});
});
containerEl.createEl('h2', { text: 'Style Settings' });
containerEl.createEl('p', {
@ -356,21 +285,5 @@ export class OZCalendarPluginSettingsTab extends PluginSettingTab {
this.plugin.calendarForceUpdate();
});
});
new Setting(containerEl)
.setName('File Names Overflow Behaviour')
.setDesc('Change the default behaviour for file names when they dont fit to the view')
.addDropdown((dropdown) => {
dropdown
.addOption('hide', 'Hide Overflow')
.addOption('scroll', 'Scroll Overflow')
.addOption('next-line', 'Show Overflow in the Next Line')
.setValue(this.plugin.settings.fileNameOverflowBehaviour)
.onChange((newValue: OverflowBehaviour) => {
this.plugin.settings.fileNameOverflowBehaviour = newValue;
this.plugin.saveSettings();
this.plugin.calendarForceUpdate();
});
});
}
}

View file

@ -1,29 +1,5 @@
import { TFile } from 'obsidian';
export type OZNote = {
type: 'note';
displayName: string;
path: string;
};
export type OZReminder = {
type: 'task' | 'periodic';
displayName: string;
date: string;
};
type OZItem = OZNote | OZReminder;
export interface OZCalendarDaysMap {
[key: string]: OZItem[];
[key: string]: string[];
}
export type DayChangeCommandAction = 'next-day' | 'previous-day' | 'today';
export const fileToOZItem = (params: { note: TFile }): OZItem => {
return {
type: 'note',
displayName: params.note.basename,
path: params.note.path,
};
};

View file

@ -1,8 +1,8 @@
import { ItemView, WorkspaceLeaf } from 'obsidian';
import React from 'react';
import ReactDOM from 'react-dom';
import OZCalendarPlugin from './main';
import MyCalendar from './components/calendar';
import { createRoot, Root } from 'react-dom/client';
export const VIEW_TYPE = 'oz-calendar';
export const VIEW_DISPLAY_TEXT = 'OZ Calendar';
@ -10,7 +10,6 @@ export const ICON = 'OZCAL_ICON';
export class OZCalendarView extends ItemView {
plugin: OZCalendarPlugin;
root: Root;
constructor(leaf: WorkspaceLeaf, plugin: OZCalendarPlugin) {
super(leaf);
@ -34,12 +33,11 @@ export class OZCalendarView extends ItemView {
}
destroy() {
if (this.root) this.root.unmount();
ReactDOM.unmountComponentAtNode(this.contentEl);
}
async onOpen() {
this.destroy();
this.root = createRoot(this.contentEl)
this.root.render(<MyCalendar plugin={this.plugin} />);
ReactDOM.render(<MyCalendar plugin={this.plugin} />, this.contentEl);
}
}

View file

@ -18,13 +18,6 @@ settings:
type: variable-color
format: hex
default: '#'
-
id: oz-calendar-current-day-color
title: Current Day (Today) Text Color
description: Set the color of the current day in the month view
type: variable-color
format: hex
default: '#'
-
id: oz-calendar-selected-day-background
title: Selected Day Background Color
@ -39,13 +32,6 @@ settings:
type: variable-color
format: hex
default: '#'
-
id: oz-calendar-weeknr-date-color
title: Week Number Text Color
description: Set the color of week numbers, defaulted to the interactive-accent
type: variable-color
format: hex
default: '#'
*/
.theme-light,
@ -54,8 +40,6 @@ settings:
--oz-calendar-selected-daycolor: var(--text-normal);
--oz-calendar-selected-day-background: var(--interactive-accent);
--oz-calendar-header-date-color: var(--interactive-accent);
--oz-calendar-current-day-color: #74dd58;
--oz-calendar-weeknr-date-color: var(--color-accent-2);
}
.oz-cal-coffee-div,
@ -72,12 +56,6 @@ settings:
fill: var(--icon-color) !important;
}
.oz-calendar-plugin-view {
min-height: 100%;
display: flex;
flex-direction: column;
}
.oz-calendar-plugin-view .react-calendar__tile.react-calendar__month-view__days__day:hover {
background: var(--background-secondary-alt);
}
@ -166,10 +144,10 @@ settings:
}
.oz-calendar-notelist-container {
display: flex;
flex-direction: row;
justify-content: space-between;
display: block;
padding: 5px;
flex: 1;
vertical-align: middle;
}
.oz-calendar-nav-action-plus {
@ -215,6 +193,11 @@ settings:
opacity: 0.6;
}
.oz-calendar-notelist-container {
display: block;
padding: 5px;
}
.oz-calendar-note-line {
padding-top: 3px;
padding-bottom: 3px;
@ -246,11 +229,6 @@ settings:
margin-right: 3px;
}
.oz-calendar-plugin-today abbr {
color: var(--oz-calendar-current-day-color);
font-weight: bold;
}
/* START - Fixed Calendar Except Note List - Scroll */
.oz-calendar-plugin-view.fixed {
@ -261,7 +239,7 @@ settings:
}
.oz-calendar-plugin-view.fixed .react-calendar {
height: 295px;
height: 255px;
}
.oz-calendar-plugin-view.fixed #oz-calendar-divider {
@ -278,14 +256,6 @@ settings:
vertical-align: top;
}
.oz-calendar-plugin-view .react-calendar__month-view__weekNumbers {
display: block !important;
color: var(--oz-calendar-weeknr-date-color);
flex-basis: auto !important;
background-color: var(--background-modifier-cover);
font-size: var(--nav-item-size);
}
/* END - Fixed Calendar */
.oz-calendar-modal-inputel {
@ -304,18 +274,3 @@ settings:
.oz-calendar-custom-hidden {
display: none !important;
}
.oz-calendar-note-line {
color: var(--text-muted);
}
.oz-calendar-overflow-scroll {
overflow: scroll;
white-space: nowrap;
}
.oz-calendar-overflow-hide {
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}

View file

@ -1,19 +1,4 @@
{
"0.3.4": "0.15.0",
"0.3.3": "0.15.0",
"0.3.2": "0.15.0",
"0.3.1": "0.15.0",
"0.3.0": "0.15.0",
"0.2.9": "0.15.0",
"0.2.8": "0.15.0",
"0.2.7": "0.15.0",
"0.2.6": "0.15.0",
"0.2.5": "0.15.0",
"0.2.4": "0.15.0",
"0.2.3": "0.15.0",
"0.2.2": "0.15.0",
"0.2.1": "0.15.0",
"0.2.0": "0.15.0",
"0.1.9": "0.15.0",
"0.1.8": "0.15.0",
"0.1.7": "0.15.0",