From 8b014e289a123005c4ede7f9c42c436a4c3cd857 Mon Sep 17 00:00:00 2001 From: Anthony LC Date: Wed, 6 Mar 2024 11:28:27 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8(app-desk)=20component=20BoxButton?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We often need unstyled button to wrap around some content, we were using Cunningham's button for this purpose, but it is not the best choice as lot of style is applied to their buttons. This component is a simple wrapper around the button element with all the Box functionalities. Usefull for wrapping icons by example. --- .../apps/desk/src/components/BoxButton.tsx | 41 ++++++++++++++ .../apps/desk/src/components/Text.tsx | 7 +-- .../apps/desk/src/components/index.ts | 1 + .../apps/desk/src/features/header/Header.tsx | 12 ++-- .../apps/desk/src/features/menu/MenuItems.tsx | 29 ++++------ .../teams/components/Panel/PanelActions.tsx | 55 ++++++------------- 6 files changed, 74 insertions(+), 71 deletions(-) create mode 100644 src/frontend/apps/desk/src/components/BoxButton.tsx diff --git a/src/frontend/apps/desk/src/components/BoxButton.tsx b/src/frontend/apps/desk/src/components/BoxButton.tsx new file mode 100644 index 0000000..893af9d --- /dev/null +++ b/src/frontend/apps/desk/src/components/BoxButton.tsx @@ -0,0 +1,41 @@ +import { ComponentPropsWithRef, forwardRef } from 'react'; + +import { Box, BoxType } from './Box'; + +export type BoxButtonType = ComponentPropsWithRef; + +/** + * Styleless button that extends the Box component. + * Good to wrap around SVGs or other elements that need to be clickable. + * @param props - @see BoxType props + * @param ref + * @see Box + * @example + * ```tsx + * console.log('clicked')}> + * Click me + * + * ``` + */ +const BoxButton = forwardRef( + ({ $css, ...props }, ref) => { + return ( + + ); + }, +); + +BoxButton.displayName = 'BoxButton'; +export { BoxButton }; diff --git a/src/frontend/apps/desk/src/components/Text.tsx b/src/frontend/apps/desk/src/components/Text.tsx index bbeca2a..e2cce1a 100644 --- a/src/frontend/apps/desk/src/components/Text.tsx +++ b/src/frontend/apps/desk/src/components/Text.tsx @@ -55,11 +55,6 @@ export const Text = ({ ...props }: ComponentPropsWithRef) => { return ( - + ); }; diff --git a/src/frontend/apps/desk/src/components/index.ts b/src/frontend/apps/desk/src/components/index.ts index 0ade091..6a457ee 100644 --- a/src/frontend/apps/desk/src/components/index.ts +++ b/src/frontend/apps/desk/src/components/index.ts @@ -1,4 +1,5 @@ export * from './Box'; +export * from './BoxButton'; export * from './Card'; export * from './DropButton'; export * from './Link'; diff --git a/src/frontend/apps/desk/src/features/header/Header.tsx b/src/frontend/apps/desk/src/features/header/Header.tsx index 45ad791..1a1d660 100644 --- a/src/frontend/apps/desk/src/features/header/Header.tsx +++ b/src/frontend/apps/desk/src/features/header/Header.tsx @@ -1,10 +1,9 @@ -import { Button } from '@openfun/cunningham-react'; import Image from 'next/image'; import React from 'react'; import { useTranslation } from 'react-i18next'; import styled from 'styled-components'; -import { Box, Text } from '@/components/'; +import { Box, BoxButton, Text } from '@/components/'; import { LanguagePicker } from '../language/'; @@ -90,12 +89,9 @@ export const Header = () => { alt={t(`Profile picture`)} /> -