mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-15 17:16:16 +08:00
883ab46557
fix the following style issue 
76 lines
1.9 KiB
TypeScript
76 lines
1.9 KiB
TypeScript
import { clsx } from 'clsx';
|
|
import type { HTMLAttributes, PropsWithChildren, ReactElement } from 'react';
|
|
import { forwardRef } from 'react';
|
|
|
|
import { AppSidebarFallback } from '../app-sidebar';
|
|
import { appStyle, mainContainerStyle, toolStyle } from './index.css';
|
|
|
|
export type WorkspaceRootProps = PropsWithChildren<{
|
|
resizing?: boolean;
|
|
useNoisyBackground?: boolean;
|
|
useBlurBackground?: boolean;
|
|
}>;
|
|
|
|
export const AppContainer = ({
|
|
resizing,
|
|
useNoisyBackground,
|
|
useBlurBackground,
|
|
children,
|
|
}: WorkspaceRootProps) => {
|
|
const noisyBackground = useNoisyBackground && environment.isDesktop;
|
|
return (
|
|
<div
|
|
className={clsx(appStyle, {
|
|
'noisy-background': noisyBackground,
|
|
'blur-background': environment.isDesktop && useBlurBackground,
|
|
})}
|
|
data-noise-background={noisyBackground}
|
|
data-is-resizing={resizing}
|
|
>
|
|
{children}
|
|
</div>
|
|
);
|
|
};
|
|
|
|
export interface MainContainerProps extends HTMLAttributes<HTMLDivElement> {
|
|
className?: string;
|
|
padding?: boolean;
|
|
transparent?: boolean;
|
|
}
|
|
|
|
export const MainContainer = forwardRef<
|
|
HTMLDivElement,
|
|
PropsWithChildren<MainContainerProps>
|
|
>(function MainContainer(
|
|
{ className, padding, children, transparent, ...props },
|
|
ref
|
|
): ReactElement {
|
|
return (
|
|
<div
|
|
{...props}
|
|
className={clsx(mainContainerStyle, className)}
|
|
data-is-macos={environment.isDesktop && environment.isMacOs}
|
|
data-show-padding={!!padding}
|
|
data-transparent={transparent}
|
|
ref={ref}
|
|
>
|
|
{children}
|
|
</div>
|
|
);
|
|
});
|
|
|
|
MainContainer.displayName = 'MainContainer';
|
|
|
|
export const ToolContainer = (props: PropsWithChildren): ReactElement => {
|
|
return <div className={toolStyle}>{props.children}</div>;
|
|
};
|
|
|
|
export const WorkspaceFallback = (): ReactElement => {
|
|
return (
|
|
<AppContainer>
|
|
<AppSidebarFallback />
|
|
<MainContainer />
|
|
</AppContainer>
|
|
);
|
|
};
|