mirror of
https://github.com/roleypoly/roleypoly.git
synced 2025-04-25 20:09:11 +00:00
* chore: restructure project into yarn workspaces, remove next * fix tests, remove webapp from terraform * remove more ui deployment bits * remove pages, fix FUNDING.yml * remove isomorphism * remove next providers * fix linting issues * feat: start basis of new web ui system on CRA * chore: move types to @roleypoly/types package * chore: move src/common/utils to @roleypoly/misc-utils * chore: remove roleypoly/ path remappers * chore: renmove vercel config * chore: re-add worker-types to api package * chore: fix type linting scope for api * fix(web): craco should include all of packages dir * fix(ci): change api webpack path for wrangler * chore: remove GAR actions from CI * chore: update codeql job * chore: test better github dar matcher in lint-staged
35 lines
1 KiB
TypeScript
35 lines
1 KiB
TypeScript
import * as React from 'react';
|
|
import styled from 'styled-components';
|
|
|
|
export type FaderProps = {
|
|
isVisible: boolean;
|
|
children: React.ReactNode;
|
|
};
|
|
|
|
const FaderOpacityStyled = styled.div<Pick<FaderProps, 'isVisible'>>`
|
|
opacity: ${(props) => (props.isVisible ? 1 : 0)};
|
|
pointer-events: ${(props) => (props.isVisible ? 'unset' : 'none')};
|
|
transition: opacity 0.35s ease-in-out;
|
|
`;
|
|
|
|
export const FaderOpacity = (props: FaderProps) => {
|
|
return (
|
|
<FaderOpacityStyled isVisible={props.isVisible}>
|
|
{props.children}
|
|
</FaderOpacityStyled>
|
|
);
|
|
};
|
|
|
|
const FaderSlideStyled = styled.div<Pick<FaderProps, 'isVisible'>>`
|
|
max-height: ${(props) => (props.isVisible ? '4em' : '0')};
|
|
pointer-events: ${(props) => (props.isVisible ? 'unset' : 'none')};
|
|
transition: max-height 0.35s ease-in-out;
|
|
overflow: hidden;
|
|
transform: translateZ(0);
|
|
`;
|
|
|
|
export const FaderSlide = (props: FaderProps) => {
|
|
return (
|
|
<FaderSlideStyled isVisible={props.isVisible}>{props.children}</FaderSlideStyled>
|
|
);
|
|
};
|