mirror of
https://github.com/cinnyapp/cinny.git
synced 2025-11-04 14:30:29 +03:00
move floating expand button to code block header
This commit is contained in:
parent
1807908f02
commit
739829331b
2 changed files with 22 additions and 21 deletions
|
|
@ -16,7 +16,7 @@ import {
|
|||
} from 'html-react-parser';
|
||||
import { MatrixClient } from 'matrix-js-sdk';
|
||||
import classNames from 'classnames';
|
||||
import { Box, Chip, Header, Icon, IconButton, Icons, Scroll, Text, toRem } from 'folds';
|
||||
import { Box, Chip, config, Header, Icon, IconButton, Icons, Scroll, Text, toRem } from 'folds';
|
||||
import { IntermediateRepresentation, Opts as LinkifyOpts, OptFn } from 'linkifyjs';
|
||||
import Linkify from 'linkify-react';
|
||||
import { ErrorBoundary } from 'react-error-boundary';
|
||||
|
|
@ -265,21 +265,34 @@ export function CodeBlock({
|
|||
{language ?? 'Code'}
|
||||
</Text>
|
||||
</Box>
|
||||
<Box shrink="No">
|
||||
<Box shrink="No" gap="200">
|
||||
<Chip
|
||||
variant="Surface"
|
||||
radii="300"
|
||||
variant={copied ? 'Success' : 'Surface'}
|
||||
fill="None"
|
||||
radii="Pill"
|
||||
onClick={handleCopy}
|
||||
before={copied && <Icon size="50" src={Icons.Check} />}
|
||||
>
|
||||
<Text size="B300">{copied ? 'Copied' : 'Copy'}</Text>
|
||||
</Chip>
|
||||
{largeCodeBlock && (
|
||||
<IconButton
|
||||
size="300"
|
||||
variant="SurfaceVariant"
|
||||
outlined
|
||||
radii="300"
|
||||
onClick={toggleExpand}
|
||||
aria-label={expanded ? 'Collapse' : 'Expand'}
|
||||
>
|
||||
<Icon size="50" src={expanded ? Icons.ChevronTop : Icons.ChevronBottom} />
|
||||
</IconButton>
|
||||
)}
|
||||
</Box>
|
||||
</Header>
|
||||
<Scroll
|
||||
style={{
|
||||
maxHeight: largeCodeBlock && !expanded ? toRem(300) : undefined,
|
||||
paddingBottom: largeCodeBlock ? toRem(48) : undefined,
|
||||
paddingBottom: largeCodeBlock ? config.space.S400 : undefined,
|
||||
}}
|
||||
direction="Both"
|
||||
variant="SurfaceVariant"
|
||||
|
|
@ -291,20 +304,7 @@ export function CodeBlock({
|
|||
{domToReact(children, opts)}
|
||||
</div>
|
||||
</Scroll>
|
||||
{largeCodeBlock && (
|
||||
<Box className={css.CodeBlockBottomBar} justifyContent="End">
|
||||
<IconButton
|
||||
style={{ pointerEvents: 'all' }}
|
||||
variant="Secondary"
|
||||
radii="300"
|
||||
outlined
|
||||
onClick={toggleExpand}
|
||||
aria-label={expanded ? 'Collapse' : 'Expand'}
|
||||
>
|
||||
<Icon size="50" src={expanded ? Icons.ChevronTop : Icons.ChevronBottom} />
|
||||
</IconButton>
|
||||
</Box>
|
||||
)}
|
||||
{largeCodeBlock && !expanded && <Box className={css.CodeBlockBottomShadow} />}
|
||||
</Text>
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -95,6 +95,7 @@ export const CodeBlock = style([
|
|||
export const CodeBlockHeader = style({
|
||||
padding: `0 ${config.space.S200} 0 ${config.space.S300}`,
|
||||
borderBottomWidth: config.borderWidth.B300,
|
||||
gap: config.space.S200,
|
||||
});
|
||||
export const CodeBlockInternal = style([
|
||||
CodeFont,
|
||||
|
|
@ -104,14 +105,14 @@ export const CodeBlockInternal = style([
|
|||
},
|
||||
]);
|
||||
|
||||
export const CodeBlockBottomBar = style({
|
||||
export const CodeBlockBottomShadow = style({
|
||||
position: 'absolute',
|
||||
bottom: 0,
|
||||
left: 0,
|
||||
right: 0,
|
||||
pointerEvents: 'none',
|
||||
|
||||
padding: config.space.S200,
|
||||
height: config.space.S400,
|
||||
background: `linear-gradient(to top, #00000022, #00000000)`,
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue