Delete SpaceTombstone: nothing renders it
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
067cb10a90
commit
e8efd3ce76
2 changed files with 0 additions and 79 deletions
|
|
@ -1,78 +0,0 @@
|
||||||
import React, { useCallback } from 'react';
|
|
||||||
import { Box, Button, Spinner, Text, color, config } from 'folds';
|
|
||||||
import { useMatrixClient } from '../../../hooks/useMatrixClient';
|
|
||||||
import { Membership } from '../../../../types/matrix/room';
|
|
||||||
import { getViaServers } from '../../../plugins/via-servers';
|
|
||||||
import { useRoomNavigate } from '../../../hooks/useRoomNavigate';
|
|
||||||
import { ContainerColor } from '../../../styles/ContainerColor.css';
|
|
||||||
import { AsyncStatus, useAsyncCallback } from '../../../hooks/useAsyncCallback';
|
|
||||||
import { BreakWord } from '../../../styles/Text.css';
|
|
||||||
|
|
||||||
type SpaceTombstoneProps = { roomId: string; replacementRoomId: string };
|
|
||||||
export function SpaceTombstone({ roomId, replacementRoomId }: SpaceTombstoneProps) {
|
|
||||||
const mx = useMatrixClient();
|
|
||||||
const { navigateSpace } = useRoomNavigate();
|
|
||||||
|
|
||||||
const [joinState, handleJoin] = useAsyncCallback(
|
|
||||||
useCallback(() => {
|
|
||||||
const currentRoom = mx.getRoom(roomId);
|
|
||||||
const via = currentRoom ? getViaServers(currentRoom) : [];
|
|
||||||
return mx.joinRoom(replacementRoomId, {
|
|
||||||
viaServers: via,
|
|
||||||
});
|
|
||||||
}, [mx, roomId, replacementRoomId])
|
|
||||||
);
|
|
||||||
const replacementRoom = mx.getRoom(replacementRoomId);
|
|
||||||
|
|
||||||
const handleOpen = () => {
|
|
||||||
if (replacementRoom) navigateSpace(replacementRoom.roomId);
|
|
||||||
if (joinState.status === AsyncStatus.Success) navigateSpace(joinState.data.roomId);
|
|
||||||
};
|
|
||||||
|
|
||||||
return (
|
|
||||||
<Box
|
|
||||||
style={{
|
|
||||||
padding: config.space.S200,
|
|
||||||
borderRadius: config.radii.R400,
|
|
||||||
borderWidth: config.borderWidth.B300,
|
|
||||||
}}
|
|
||||||
className={ContainerColor({ variant: 'Surface' })}
|
|
||||||
direction="Column"
|
|
||||||
gap="300"
|
|
||||||
>
|
|
||||||
<Box direction="Column" grow="Yes" gap="100">
|
|
||||||
<Text size="L400">Space Upgraded</Text>
|
|
||||||
<Text size="T200">This space has been replaced and is no longer active.</Text>
|
|
||||||
{joinState.status === AsyncStatus.Error && (
|
|
||||||
<Text className={BreakWord} style={{ color: color.Critical.Main }} size="T200">
|
|
||||||
{(joinState.error as any)?.message ?? 'Failed to join replacement space!'}
|
|
||||||
</Text>
|
|
||||||
)}
|
|
||||||
</Box>
|
|
||||||
<Box direction="Column" shrink="No">
|
|
||||||
{replacementRoom?.getMyMembership() === Membership.Join ||
|
|
||||||
joinState.status === AsyncStatus.Success ? (
|
|
||||||
<Button onClick={handleOpen} size="300" variant="Success" fill="Solid" radii="300">
|
|
||||||
<Text size="B300">Open New Space</Text>
|
|
||||||
</Button>
|
|
||||||
) : (
|
|
||||||
<Button
|
|
||||||
onClick={handleJoin}
|
|
||||||
size="300"
|
|
||||||
variant="Primary"
|
|
||||||
fill="Solid"
|
|
||||||
radii="300"
|
|
||||||
before={
|
|
||||||
joinState.status === AsyncStatus.Loading && (
|
|
||||||
<Spinner size="100" variant="Primary" fill="Solid" />
|
|
||||||
)
|
|
||||||
}
|
|
||||||
disabled={joinState.status === AsyncStatus.Loading}
|
|
||||||
>
|
|
||||||
<Text size="B300">Join New Space</Text>
|
|
||||||
</Button>
|
|
||||||
)}
|
|
||||||
</Box>
|
|
||||||
</Box>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
export * from './SpaceProvider';
|
export * from './SpaceProvider';
|
||||||
export * from './SpaceTombstone';
|
|
||||||
export * from './Search';
|
export * from './Search';
|
||||||
export * from './RoomProvider';
|
export * from './RoomProvider';
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue