rooms-page-calendar-ics-room-name-fix (#659)

Co-authored-by: Igor Loskutov <igor.loskutoff@gmail.com>
This commit is contained in:
Igor Monadical
2025-09-17 20:02:17 -04:00
committed by GitHub
parent 6566e04300
commit 2b723da08b
2 changed files with 29 additions and 27 deletions

View File

@@ -27,7 +27,7 @@ import {
} from "../../../lib/utils"; } from "../../../lib/utils";
interface ICSSettingsProps { interface ICSSettingsProps {
roomName: NonEmptyString; roomName: NonEmptyString | null;
icsUrl?: string; icsUrl?: string;
icsEnabled?: boolean; icsEnabled?: boolean;
icsFetchInterval?: number; icsFetchInterval?: number;
@@ -85,7 +85,7 @@ export default function ICSSettings({
const handleCopyRoomUrl = async () => { const handleCopyRoomUrl = async () => {
try { try {
await navigator.clipboard.writeText( await navigator.clipboard.writeText(
roomAbsoluteUrl(assertExistsAndNonEmptyString(roomName)), roomAbsoluteUrl(assertExists(roomName)),
); );
setJustCopied(true); setJustCopied(true);
@@ -123,7 +123,7 @@ export default function ICSSettings({
const handleRoomUrlClick = () => { const handleRoomUrlClick = () => {
if (roomUrlInputRef.current) { if (roomUrlInputRef.current) {
roomUrlInputRef.current.select(); roomUrlInputRef.current.select();
handleCopyRoomUrl(); handleCopyRoomUrl().then(() => {});
} }
}; };
@@ -196,30 +196,32 @@ export default function ICSSettings({
To enable Reflector to recognize your calendar events as meetings, To enable Reflector to recognize your calendar events as meetings,
add this URL as the location in your calendar events add this URL as the location in your calendar events
</Field.HelperText> </Field.HelperText>
<HStack gap={0} position="relative" width="100%"> {roomName ? (
<Input <HStack gap={0} position="relative" width="100%">
ref={roomUrlInputRef} <Input
value={roomAbsoluteUrl(parseNonEmptyString(roomName))} ref={roomUrlInputRef}
readOnly value={roomAbsoluteUrl(parseNonEmptyString(roomName))}
onClick={handleRoomUrlClick} readOnly
cursor="pointer" onClick={handleRoomUrlClick}
bg="gray.100" cursor="pointer"
_hover={{ bg: "gray.200" }} bg="gray.100"
_focus={{ bg: "gray.200" }} _hover={{ bg: "gray.200" }}
pr="90px" _focus={{ bg: "gray.200" }}
width="100%" pr="90px"
/> width="100%"
<HStack position="absolute" right="4px" gap={1} zIndex={1}> />
<IconButton <HStack position="absolute" right="4px" gap={1} zIndex={1}>
aria-label="Copy room URL" <IconButton
onClick={handleCopyRoomUrl} aria-label="Copy room URL"
variant="ghost" onClick={handleCopyRoomUrl}
size="sm" variant="ghost"
> size="sm"
{justCopied ? <LuCheck /> : <LuCopy />} >
</IconButton> {justCopied ? <LuCheck /> : <LuCopy />}
</IconButton>
</HStack>
</HStack> </HStack>
</HStack> ) : null}
</Field.Root> </Field.Root>
<Field.Root> <Field.Root>

View File

@@ -624,7 +624,7 @@ export default function RoomsList() {
<Tabs.Content value="calendar" pt={6}> <Tabs.Content value="calendar" pt={6}>
<ICSSettings <ICSSettings
roomName={parseNonEmptyString(room.name)} roomName={room.name ? parseNonEmptyString(room.name) : null}
icsUrl={room.icsUrl} icsUrl={room.icsUrl}
icsEnabled={room.icsEnabled} icsEnabled={room.icsEnabled}
icsFetchInterval={room.icsFetchInterval} icsFetchInterval={room.icsFetchInterval}