@@ -33,6 +33,9 @@ import getSubTree from "roamjs-components/util/getSubTree";
33
33
import getUids from "roamjs-components/dom/getUids" ;
34
34
import setInputSetting from "roamjs-components/util/setInputSetting" ;
35
35
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" ;
36
39
37
40
type ConfigurationProps = {
38
41
blockUid : string ;
@@ -577,7 +580,6 @@ const DisplayTable = ({ blockUid, setIsEdit }: DisplayTableProps) => {
577
580
top : 0 ,
578
581
right : 0 ,
579
582
bottom : 0 ,
580
- borderRight : `1px solid rgba(16,22,26,0.15)` ,
581
583
paddingLeft : 5 ,
582
584
pointerEvents : "auto" ,
583
585
} }
@@ -616,7 +618,10 @@ const Table = ({ blockUid }: { blockUid: string }): JSX.Element => {
616
618
} ;
617
619
618
620
const unloads = new Set < ( ) => void > ( ) ;
619
- export const toggleFeature = ( flag : boolean ) => {
621
+ export const toggleFeature = (
622
+ flag : boolean ,
623
+ extensionAPI : OnloadArgs [ "extensionAPI" ]
624
+ ) => {
620
625
if ( flag ) {
621
626
const tableButtonObserver = createButtonObserver ( {
622
627
attribute : "wb-table" ,
@@ -627,6 +632,35 @@ export const toggleFeature = (flag: boolean) => {
627
632
) ( b ) ;
628
633
} ,
629
634
} ) ;
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
+
630
664
addStyle ( `
631
665
/* Chrome, Safari, Edge, Opera */
632
666
.roamjs-workbench-table-config input::-webkit-outer-spin-button,
@@ -658,6 +692,7 @@ export const toggleFeature = (flag: boolean) => {
658
692
display: none;
659
693
}
660
694
` ) ;
695
+
661
696
unloads . add ( ( ) => tableButtonObserver . disconnect ( ) ) ;
662
697
} else {
663
698
unloads . forEach ( ( u ) => u ( ) ) ;
0 commit comments