xref: /expo/docs/ui/components/Authentication/Box.tsx (revision f4b1168b)
1abdafdeaSBartosz Kaszubowskiimport { css } from '@emotion/react';
2*f4b1168bSBartosz Kaszubowskiimport { spacing } from '@expo/styleguide-base';
3*f4b1168bSBartosz Kaszubowskiimport type { PropsWithChildren } from 'react';
4abdafdeaSBartosz Kaszubowski
5abdafdeaSBartosz Kaszubowskiimport { CreateAppButton } from './CreateAppButton';
6abdafdeaSBartosz Kaszubowskiimport { Icon } from './Icon';
7abdafdeaSBartosz Kaszubowski
8abdafdeaSBartosz Kaszubowskiimport { APIBox } from '~/components/plugins/APIBox';
9a16a3d18SBartosz Kaszubowskiimport { tableWrapperStyle } from '~/ui/components/Table/Table';
10a16a3d18SBartosz Kaszubowskiimport { H3 } from '~/ui/components/Text';
11abdafdeaSBartosz Kaszubowski
12*f4b1168bSBartosz Kaszubowskitype BoxProps = PropsWithChildren<{
13abdafdeaSBartosz Kaszubowski  name: string;
14abdafdeaSBartosz Kaszubowski  image: string;
15abdafdeaSBartosz Kaszubowski  createUrl?: string;
16abdafdeaSBartosz Kaszubowski}>;
17abdafdeaSBartosz Kaszubowski
18abdafdeaSBartosz Kaszubowskiexport const Box = ({ name, image, createUrl, children }: BoxProps) => (
19*f4b1168bSBartosz Kaszubowski  <APIBox className="mt-6" css={boxStyle}>
20*f4b1168bSBartosz Kaszubowski    <div className="inline-flex flex-row items-center gap-4 pb-4 w-full max-medium:gap-3 max-medium:flex-col">
21*f4b1168bSBartosz Kaszubowski      <div className="flex flex-row gap-3 items-center w-[inherit]">
22abdafdeaSBartosz Kaszubowski        <Icon title={name} image={image} size={48} />
23*f4b1168bSBartosz Kaszubowski        <H3 style={{ marginBottom: 0 }}>{name}</H3>
24abdafdeaSBartosz Kaszubowski      </div>
25abdafdeaSBartosz Kaszubowski      {createUrl && <CreateAppButton name={name} href={createUrl} />}
26abdafdeaSBartosz Kaszubowski    </div>
27abdafdeaSBartosz Kaszubowski    {children}
28abdafdeaSBartosz Kaszubowski  </APIBox>
29abdafdeaSBartosz Kaszubowski);
30abdafdeaSBartosz Kaszubowski
31abdafdeaSBartosz Kaszubowskiconst boxStyle = css({
32a16a3d18SBartosz Kaszubowski  [`.css-${tableWrapperStyle.name}`]: {
33a16a3d18SBartosz Kaszubowski    marginBottom: spacing[4],
34a16a3d18SBartosz Kaszubowski  },
35abdafdeaSBartosz Kaszubowski});
36