@@ -33,6 +33,9 @@ import getSubTree from "roamjs-components/util/getSubTree";
3333import getUids from "roamjs-components/dom/getUids" ;
3434import setInputSetting from "roamjs-components/util/setInputSetting" ;
3535import 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
3740type 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
618620const 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