mirror of
https://github.com/liufree/obsidian-querydash.git
synced 2026-07-22 05:41:49 +00:00
feat: support mermorycard view
This commit is contained in:
parent
09c4103a0b
commit
6da33cda7e
1 changed files with 18 additions and 5 deletions
|
|
@ -1,9 +1,10 @@
|
|||
import {BasesView, MarkdownRenderer, QueryController, TFile,Component} from 'obsidian';
|
||||
import {BasesView, MarkdownRenderer, QueryController, TFile, Component} from 'obsidian';
|
||||
import React, {useEffect, useRef, useState} from 'react';
|
||||
import {createRoot} from 'react-dom/client';
|
||||
import {Button, Space, Card, Modal, notification} from 'antd';
|
||||
import dayjs from 'dayjs';
|
||||
import isSameOrBefore from 'dayjs/plugin/isSameOrBefore';
|
||||
|
||||
dayjs.extend(isSameOrBefore);
|
||||
|
||||
export const MemoryCardViewType = 'dash-memory-card-view';
|
||||
|
|
@ -24,19 +25,21 @@ export class DashMemoryCardView extends BasesView {
|
|||
const allCards = this.data.data;
|
||||
// 按 sr-due 升序排序
|
||||
this.sortedCards = [...allCards]
|
||||
.map(card => ({card, due: card.getValue('properties.sr-due')}))
|
||||
.map(function (card) {
|
||||
return {card, due: card.getValue('note.sr-due')};
|
||||
})
|
||||
.sort((a, b) => {
|
||||
if (!a.due && !b.due) return 0;
|
||||
if (!a.due) return 1;
|
||||
if (!b.due) return -1;
|
||||
return dayjs(a.due).valueOf() - dayjs(b.due).valueOf();
|
||||
return dayjs(a.due).isSameOrBefore(b.due) ? -1 : 1;
|
||||
})
|
||||
.map(item => item.card);
|
||||
// 找到 sr-due 最近的卡片
|
||||
let idx = 0;
|
||||
const now = dayjs();
|
||||
for (let i = 0; i < this.sortedCards.length; i++) {
|
||||
const due = this.sortedCards[i].getValue('properties.sr-due');
|
||||
const due = this.sortedCards[i].getValue('note.sr-due');
|
||||
if (due && dayjs(due).isSameOrBefore(now, 'day')) {
|
||||
idx = i;
|
||||
break;
|
||||
|
|
@ -159,7 +162,17 @@ const updateSRFrontmatter = async (
|
|||
return false;
|
||||
};
|
||||
|
||||
const MemoryCard: React.FC<MemoryCardProps> = ({markdown, app, filePath, title, frontmatter, onPrev, onNext, isPrevDisabled, isNextDisabled}) => {
|
||||
const MemoryCard: React.FC<MemoryCardProps> = ({
|
||||
markdown,
|
||||
app,
|
||||
filePath,
|
||||
title,
|
||||
frontmatter,
|
||||
onPrev,
|
||||
onNext,
|
||||
isPrevDisabled,
|
||||
isNextDisabled
|
||||
}) => {
|
||||
const mdRef = useRef<HTMLDivElement>(null);
|
||||
const [rendered, setRendered] = useState(false);
|
||||
const [fm, setFM] = useState(frontmatter);
|
||||
|
|
|
|||
Loading…
Reference in a new issue