Dynamic bottom padding

This commit is contained in:
Tom Moor
2022-12-15 21:03:47 -05:00
parent 6f57767b7c
commit 1995a3fb19
3 changed files with 10 additions and 9 deletions

View File

@@ -1,9 +1,9 @@
import styled from "styled-components";
const ClickablePadding = styled.div<{ grow?: boolean }>`
min-height: 50vh;
cursor: ${({ onClick }) => (onClick ? "text" : "default")};
${({ grow }) => grow && `flex-grow: 100;`};
const ClickablePadding = styled.div<{ grow?: boolean; minHeight?: string }>`
min-height: ${(props) => props.minHeight || "50vh"};
flex-grow: 100;
cursor: text;
`;
export default ClickablePadding;

View File

@@ -50,10 +50,10 @@ export type Props = Optional<
> & {
shareId?: string | undefined;
embedsDisabled?: boolean;
grow?: boolean;
onHeadingsChange?: (headings: Heading[]) => void;
onSynced?: () => Promise<void>;
onPublish?: (event: React.MouseEvent) => any;
bottomPadding?: string;
};
function Editor(props: Props, ref: React.RefObject<SharedEditor> | null) {
@@ -301,12 +301,12 @@ function Editor(props: Props, ref: React.RefObject<SharedEditor> | null) {
placeholder={props.placeholder || ""}
defaultValue={props.defaultValue || ""}
/>
{props.grow && !props.readOnly && (
{props.bottomPadding && !props.readOnly && (
<ClickablePadding
onClick={focusAtEnd}
onDrop={handleDrop}
onDragOver={handleDragOver}
grow
minHeight={props.bottomPadding}
/>
)}
{activeLinkEvent && !shareId && (

View File

@@ -51,6 +51,7 @@ function DocumentEditor(props: Props, ref: React.RefObject<any>) {
...rest
} = props;
const childRef = React.useRef<HTMLDivElement>(null);
const focusAtStart = React.useCallback(() => {
if (ref.current) {
ref.current.focusAtStart();
@@ -115,10 +116,10 @@ function DocumentEditor(props: Props, ref: React.RefObject<any>) {
readOnly={readOnly}
shareId={shareId}
extensions={fullPackage}
grow
bottomPadding={`calc(50vh - ${childRef.current?.offsetHeight || 0}px)`}
{...rest}
/>
{children}
<div ref={childRef}>{children}</div>
</Flex>
);
}