Skip to content

Commit 73a9bab

Browse files
authored
Add Create WorkBench Table command (#464)
* Add Create WorkBench Table command * use workbench addCommand * 1.5.1
1 parent 1534b5d commit 73a9bab

File tree

3 files changed

+40
-5
lines changed

3 files changed

+40
-5
lines changed

package-lock.json

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
"@types/mozilla-readability": "^0.2.0",
2424
"@types/turndown": "^5.0.1"
2525
},
26-
"version": "1.5.0",
26+
"version": "1.5.1",
2727
"samepage": {
2828
"extends": "node_modules/roamjs-components/package.json"
2929
}

src/features/table.tsx

+37-2
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ import getSubTree from "roamjs-components/util/getSubTree";
3333
import getUids from "roamjs-components/dom/getUids";
3434
import setInputSetting from "roamjs-components/util/setInputSetting";
3535
import setInputSettings from "roamjs-components/util/setInputSettings";
36+
import { OnloadArgs } from "roamjs-components/types";
37+
import { render as renderToast } from "roamjs-components/components/Toast";
38+
import { addCommand } from "./workBench";
3639

3740
type ConfigurationProps = {
3841
blockUid: string;
@@ -577,7 +580,6 @@ const DisplayTable = ({ blockUid, setIsEdit }: DisplayTableProps) => {
577580
top: 0,
578581
right: 0,
579582
bottom: 0,
580-
borderRight: `1px solid rgba(16,22,26,0.15)`,
581583
paddingLeft: 5,
582584
pointerEvents: "auto",
583585
}}
@@ -616,7 +618,10 @@ const Table = ({ blockUid }: { blockUid: string }): JSX.Element => {
616618
};
617619

618620
const unloads = new Set<() => void>();
619-
export const toggleFeature = (flag: boolean) => {
621+
export const toggleFeature = (
622+
flag: boolean,
623+
extensionAPI: OnloadArgs["extensionAPI"]
624+
) => {
620625
if (flag) {
621626
const tableButtonObserver = createButtonObserver({
622627
attribute: "wb-table",
@@ -627,6 +632,35 @@ export const toggleFeature = (flag: boolean) => {
627632
)(b);
628633
},
629634
});
635+
636+
unloads.add(
637+
addCommand(
638+
{
639+
label: "Create Table",
640+
callback: async () => {
641+
const uid = window.roamAlphaAPI.ui.getFocusedBlock()?.["block-uid"];
642+
if (!uid) {
643+
renderToast({
644+
id: "workbench-table-create-block",
645+
content:
646+
"Must be focused on a block to create a WorkBench Table",
647+
});
648+
return;
649+
}
650+
// setTimeout is needed because sometimes block is left blank
651+
setTimeout(async () => {
652+
await updateBlock({
653+
uid,
654+
text: "{{wb-table}}",
655+
});
656+
}, 200);
657+
document.querySelector("body")?.click();
658+
},
659+
},
660+
extensionAPI
661+
)
662+
);
663+
630664
addStyle(`
631665
/* Chrome, Safari, Edge, Opera */
632666
.roamjs-workbench-table-config input::-webkit-outer-spin-button,
@@ -658,6 +692,7 @@ export const toggleFeature = (flag: boolean) => {
658692
display: none;
659693
}
660694
`);
695+
661696
unloads.add(() => tableButtonObserver.disconnect());
662697
} else {
663698
unloads.forEach((u) => u());

0 commit comments

Comments
 (0)