a tool for shared writing and social publishing

disable empty date block on lock

+12 -4
+8 -3
components/Blocks/DateTimeBlock.tsx
··· 24 24 s.selectedBlocks.find((b) => b.value === props.entityID), 25 25 ); 26 26 27 - // let isLocked = useEntity(props.entityID, "block/locked")?.data.value; 27 + let isLocked = !!useEntity(props.entityID, "block/is-locked")?.data.value; 28 28 29 29 const handleTimeChange: React.ChangeEventHandler<HTMLInputElement> = (e) => { 30 30 const time = e.target.value; ··· 72 72 73 73 return ( 74 74 <Popover 75 + disabled={isLocked} 75 76 className="w-64 z-10 !px-2" 76 77 trigger={ 77 78 <div 78 79 className={`flex flex-row gap-2 group/date w-64 z-[1] 79 80 ${isSelected ? "block-border-selected !border-transparent" : "border border-transparent"} 80 - ${!permissions.write ? "pointer-events-none" : ""} 81 81 `} 82 82 > 83 83 <BlockCalendarSmall className="text-tertiary" /> 84 84 {dateFact ? ( 85 - <div className="group-hover/date:underline font-bold "> 85 + <div 86 + className={`font-bold 87 + ${!permissions.write || isLocked ? "" : "group-hover/date:underline"} 88 + `} 89 + > 86 90 {selectedDate.toLocaleDateString(undefined, { 87 91 month: "short", 88 92 year: "numeric", ··· 140 144 </div> 141 145 </Popover> 142 146 ); 147 + dis; 143 148 } 144 149 145 150 const CustomChevron = (props: ChevronProps) => {
+4 -1
components/Popover.tsx
··· 5 5 6 6 export const Popover = (props: { 7 7 trigger: React.ReactNode; 8 + disabled?: boolean; 8 9 children: React.ReactNode; 9 10 align?: "start" | "end" | "center"; 10 11 background?: string; ··· 14 15 }) => { 15 16 return ( 16 17 <RadixPopover.Root open={props.open}> 17 - <RadixPopover.Trigger>{props.trigger}</RadixPopover.Trigger> 18 + <RadixPopover.Trigger disabled={props.disabled}> 19 + {props.trigger} 20 + </RadixPopover.Trigger> 18 21 <RadixPopover.Portal> 19 22 <NestedCardThemeProvider> 20 23 <RadixPopover.Content