|
1 | 1 | import {Tab} from "../layout/Tab";
|
2 | 2 | import {Custom} from "../layout/dock/Custom";
|
3 |
| -import {bindCardEvent, genCardHTML} from "./openCard"; |
| 3 | +import {bindCardEvent, genCardHTML, initCardComponent} from "./openCard"; |
4 | 4 | import {fetchPost} from "../util/fetch";
|
5 | 5 | import {Protyle} from "../protyle";
|
6 | 6 | import {setPanelFocus} from "../layout/util";
|
@@ -37,23 +37,30 @@ export const newCardModel = (options: {
|
37 | 37 | });
|
38 | 38 | };
|
39 | 39 |
|
40 |
| - const renderCardsAndBindEvents = async (element: HTMLElement, data: any, cardsData: ICardData, index?: number) => { |
| 40 | + const renderCardsAndBindEvents = async (element: HTMLElement, data: any, cardsData: ICardData, index?: number, isUpdate?: boolean) => { |
41 | 41 | element.innerHTML = genCardHTML({
|
42 | 42 | id: data.id,
|
43 | 43 | cardType: data.cardType,
|
44 | 44 | cardsData,
|
45 | 45 | isTab: true,
|
46 | 46 | });
|
47 | 47 |
|
48 |
| - editor = await bindCardEvent({ |
| 48 | + const cardOptions = { |
49 | 49 | app: options.app,
|
50 | 50 | element: element,
|
51 | 51 | id: data.id,
|
52 | 52 | title: data.title,
|
53 | 53 | cardType: data.cardType,
|
54 | 54 | cardsData,
|
55 | 55 | index,
|
56 |
| - }); |
| 56 | + }; |
| 57 | + |
| 58 | + if (isUpdate) { |
| 59 | + const initResult = await initCardComponent(cardOptions); |
| 60 | + editor = initResult.editor; |
| 61 | + } else { |
| 62 | + editor = await bindCardEvent(cardOptions); |
| 63 | + } |
57 | 64 |
|
58 | 65 | customObj.editors.push(editor);
|
59 | 66 | };
|
@@ -91,7 +98,7 @@ export const newCardModel = (options: {
|
91 | 98 | },
|
92 | 99 | async update() {
|
93 | 100 | const cardsData = await fetchCardsData();
|
94 |
| - await renderCardsAndBindEvents(this.element, this.data, cardsData); |
| 101 | + await renderCardsAndBindEvents(this.element, this.data, cardsData ,undefined, true); |
95 | 102 | }
|
96 | 103 | });
|
97 | 104 | customObj.element.addEventListener("click", () => {
|
|
0 commit comments