From c0211de262bad0ff42eba84f3680302af95df882 Mon Sep 17 00:00:00 2001 From: Tom Lanser Date: Fri, 23 Dec 2022 14:07:33 +0100 Subject: [PATCH 1/8] feat: Implemented some Animo colors Signed-off-by: Tom Lanser --- packages/toolbox-ui/src/ToolboxApp.tsx | 25 +++++++++++------ .../toolbox-ui/src/components/Loading.tsx | 5 ++-- .../src/components/RecordActions.tsx | 4 +-- .../connections/ConnectionsTable.tsx | 4 ++- .../components/generic/buttons/Buttons.tsx | 28 ++++++++++++++++--- .../toolbox-ui/src/layout/LayoutNavBar.tsx | 15 ++++------ .../src/layout/actions/LogoutAction.tsx | 2 +- packages/toolbox-ui/src/pages/SetupScreen.tsx | 7 +++-- .../agent/connections/ConnectionsScreen.tsx | 4 +-- 9 files changed, 60 insertions(+), 34 deletions(-) diff --git a/packages/toolbox-ui/src/ToolboxApp.tsx b/packages/toolbox-ui/src/ToolboxApp.tsx index 81ee1bb..5966099 100644 --- a/packages/toolbox-ui/src/ToolboxApp.tsx +++ b/packages/toolbox-ui/src/ToolboxApp.tsx @@ -18,17 +18,24 @@ interface ToolboxAppProps { const toolboxTheme = (colorScheme: ColorScheme): MantineThemeOverride => ({ colorScheme: colorScheme, colors: { - neutral: ['#333333'], - secondary: ['#557EBA'], - background: ['#F5F5F4'], - animoWhite: ['#F5F5F4'], - animoCoral: ['#EA6767'], - animoBlue: ['#557EBA'], - animoBlack: ['#202223'], - animoLightgrey: ['#E5E5E5'], - animoDarkgrey: ['#3A3B3B'], + neutral: ['#333333', '#4D4D4D', '#666666', '#808080', '#999999', '#B3B3B3', '#CCCCCC', '#E6E6E6'], + secondary: ['#F5F5F5', '#D3D3D3', '#B0B0B0', '#8E8E8E', '#6C6C6C', '#494949', '#272727', '#050505'], + background: ['#F5F5F4', '#E8E8E8', '#D3D3D3', '#BFBFBF', '#A8A8A8', '#939393', '#7D7D7D', '#666666'], + animoWhite: ['#F5F5F4', '#E8E8E8', '#D3D3D3', '#BFBFBF', '#A8A8A8', '#939393', '#7D7D7D', '#666666'], + animoCoral: ['#EA6767', '#FF8989', '#FFA5A5', '#FFBFBF', '#FFD5D5', '#FFEAEA', '#FFFFFF', '#FFC6C6'], + animoBlue: ['#557EBA', '#7B9BC9', '#A3B6D3', '#C7D3E8', '#EBF1FF', '#F4F6F9', '#F8F9FA', '#EDF0F4'], + animoBlack: ['#202223', '#3D3D3D', '#4F4F4F', '#616161', '#737373', '#858585', '#979797', '#A9A9A9'], + animoLightgrey: ['#E5E5E5', '#D3D3D3', '#BFBFBF', '#A8A8A8', '#939393', '#7D7D7D', '#666666', '#505050'], + animoDarkgrey: ['#3A3B3B', '#2F2F2F', '#3D3D3D', '#4D4D4D', '#5C5C5C', '#6B6B6B', '#7A7A7A', '#898989'], }, + defaultRadius: '0.25rem', + + white: '#F5F5F4', + black: '#202223', + + primaryColor: colorScheme === 'dark' ? 'animoWhite' : 'animoBlack', + fontFamily: 'Montserrat, sans-serif', }) diff --git a/packages/toolbox-ui/src/components/Loading.tsx b/packages/toolbox-ui/src/components/Loading.tsx index 56fa824..dd17c42 100644 --- a/packages/toolbox-ui/src/components/Loading.tsx +++ b/packages/toolbox-ui/src/components/Loading.tsx @@ -1,4 +1,4 @@ -import { Center, createStyles, Flex, Loader, Text } from '@mantine/core' +import { Center, createStyles, Flex, Loader, Text, useMantineColorScheme } from '@mantine/core' import React from 'react' const useStyles = createStyles({ @@ -13,11 +13,12 @@ interface LoadingProps { export const Loading = ({ description }: LoadingProps) => { const { classes } = useStyles() + const { colorScheme } = useMantineColorScheme() return (
- + {description && ( {description} diff --git a/packages/toolbox-ui/src/components/RecordActions.tsx b/packages/toolbox-ui/src/components/RecordActions.tsx index 539b6d6..bcb60fd 100644 --- a/packages/toolbox-ui/src/components/RecordActions.tsx +++ b/packages/toolbox-ui/src/components/RecordActions.tsx @@ -14,13 +14,13 @@ interface RecordActionsProps { export const RecordActions = ({ onAccept, onDecline, onDelete, isLoading }: RecordActionsProps) => { const actions = [ onAccept && ( - + Accept ), onDecline && ( - + Decline ), diff --git a/packages/toolbox-ui/src/components/connections/ConnectionsTable.tsx b/packages/toolbox-ui/src/components/connections/ConnectionsTable.tsx index 5a61ea9..aca9eb5 100644 --- a/packages/toolbox-ui/src/components/connections/ConnectionsTable.tsx +++ b/packages/toolbox-ui/src/components/connections/ConnectionsTable.tsx @@ -73,7 +73,9 @@ export const ConnectionsTable = ({ records, onDelete, onAccept, onDecline }: Con - {record.state} + + {record.state} + void } +const useStyles = createStyles((theme) => ({ + primary: { + backgroundColor: theme.colorScheme === 'dark' ? theme.colors.animoWhite[0] : theme.colors.animoBlack[0], + color: theme.colorScheme === 'dark' ? theme.colors.animoBlack[0] : theme.colors.animoWhite[0], + + '&:hover': { + backgroundColor: theme.colorScheme === 'dark' ? theme.colors.animoWhite[0] : theme.colors.animoBlack[0], + }, + }, + + secondary: { + backgroundColor: theme.colorScheme === 'dark' ? theme.colors.animoBlack[0] : theme.colors.animoWhite[0], + color: theme.colorScheme === 'dark' ? theme.colors.animoWhite[0] : theme.colors.animoBlack[0], + }, +})) + export const PrimaryButton = (props: ButtonProps & ClickAble) => { - return + diff --git a/packages/toolbox-ui/src/pages/agent/connections/ConnectionsScreen.tsx b/packages/toolbox-ui/src/pages/agent/connections/ConnectionsScreen.tsx index 294463c..8cd4af8 100644 --- a/packages/toolbox-ui/src/pages/agent/connections/ConnectionsScreen.tsx +++ b/packages/toolbox-ui/src/pages/agent/connections/ConnectionsScreen.tsx @@ -1,5 +1,5 @@ import { useAgent, useConnections } from '@aries-framework/react-hooks' -import { Button, Flex, TextInput, Title } from '@mantine/core' +import { Flex, TextInput, Title } from '@mantine/core' import { useForm } from '@mantine/form' import { openContextModal } from '@mantine/modals' import { showNotification } from '@mantine/notifications' @@ -61,7 +61,7 @@ export const ConnectionsScreen = () => {
- + Receive invite createInvite()}>Create Invite
From 02a5af68c6dd1ed3548db0201c94a4a47674ee0b Mon Sep 17 00:00:00 2001 From: Tom Lanser Date: Wed, 4 Jan 2023 13:57:43 +0100 Subject: [PATCH 2/8] feat: Changed the color usage of the action buttons and made the status badge generic Signed-off-by: Tom Lanser --- .../src/components/RecordActions.tsx | 6 +++--- .../connections/ConnectionsTable.tsx | 8 +++----- .../credentials/CredentialsTable.tsx | 6 +++--- .../components/generic/buttons/Buttons.tsx | 4 ++++ .../components/generic/table/StatusBadge.tsx | 10 ++++++++++ .../src/components/proofs/ProofsTable.tsx | 6 +++--- .../src/pages/AgentSelectionScreen.tsx | 19 ++++++++++++++++--- 7 files changed, 42 insertions(+), 17 deletions(-) create mode 100644 packages/toolbox-ui/src/components/generic/table/StatusBadge.tsx diff --git a/packages/toolbox-ui/src/components/RecordActions.tsx b/packages/toolbox-ui/src/components/RecordActions.tsx index bcb60fd..0dc6f5f 100644 --- a/packages/toolbox-ui/src/components/RecordActions.tsx +++ b/packages/toolbox-ui/src/components/RecordActions.tsx @@ -2,7 +2,7 @@ import { ActionIcon, Group, Loader } from '@mantine/core' import { IconTrash } from '@tabler/icons' import React from 'react' -import { DangerButton, PrimaryButton } from './generic' +import { PrimaryButton, SecondaryButton } from './generic' interface RecordActionsProps { onDelete?: () => void @@ -20,9 +20,9 @@ export const RecordActions = ({ onAccept, onDecline, onDelete, isLoading }: Reco ), onDecline && ( - + Decline - + ), onDelete && ( diff --git a/packages/toolbox-ui/src/components/connections/ConnectionsTable.tsx b/packages/toolbox-ui/src/components/connections/ConnectionsTable.tsx index aca9eb5..62424e2 100644 --- a/packages/toolbox-ui/src/components/connections/ConnectionsTable.tsx +++ b/packages/toolbox-ui/src/components/connections/ConnectionsTable.tsx @@ -1,11 +1,12 @@ import type { ConnectionRecord } from '@aries-framework/core' import { ConnectionsUtil } from '@animo/toolbox-core/src/utils/records/ConnectionsUtil' -import { Badge, createStyles, Group, ScrollArea, Table, Text, useMantineTheme } from '@mantine/core' +import { createStyles, Group, ScrollArea, Table, Text } from '@mantine/core' import React from 'react' import { RecordActions } from '../RecordActions' import { SmartAvatar } from '../SmartAvatar' +import { StatusBadge } from '../generic/table/StatusBadge' interface ConnectionsTableProps { records: ConnectionRecord[] @@ -36,7 +37,6 @@ const useStyles = createStyles(() => ({ export const ConnectionsTable = ({ records, onDelete, onAccept, onDecline }: ConnectionsTableProps) => { const { classes } = useStyles() - const theme = useMantineTheme() return ( @@ -73,9 +73,7 @@ export const ConnectionsTable = ({ records, onDelete, onAccept, onDecline }: Con - - {record.state} - + {record.state} ({ export const CredentialsTable = ({ records, connections, onDelete, onAccept, onDecline }: CredentialsTableProps) => { const { classes } = useStyles() - const theme = useMantineTheme() const { formattedData } = useCredentialsFormatData() return ( @@ -70,7 +70,7 @@ export const CredentialsTable = ({ records, connections, onDelete, onAccept, onD - {record.state} + {record.state} ({ secondary: { backgroundColor: theme.colorScheme === 'dark' ? theme.colors.animoBlack[0] : theme.colors.animoWhite[0], color: theme.colorScheme === 'dark' ? theme.colors.animoWhite[0] : theme.colors.animoBlack[0], + + '&:hover': { + backgroundColor: theme.colorScheme === 'dark' ? theme.colors.animoBlack[1] : theme.colors.animoWhite[1], + }, }, })) diff --git a/packages/toolbox-ui/src/components/generic/table/StatusBadge.tsx b/packages/toolbox-ui/src/components/generic/table/StatusBadge.tsx new file mode 100644 index 0000000..fb27c35 --- /dev/null +++ b/packages/toolbox-ui/src/components/generic/table/StatusBadge.tsx @@ -0,0 +1,10 @@ +import type { BadgeProps } from '@mantine/core' + +import { Badge, useMantineTheme } from '@mantine/core' +import React from 'react' + +export const StatusBadge = (props: BadgeProps) => { + const { colorScheme } = useMantineTheme() + + return +} diff --git a/packages/toolbox-ui/src/components/proofs/ProofsTable.tsx b/packages/toolbox-ui/src/components/proofs/ProofsTable.tsx index 6e76fbb..708395f 100644 --- a/packages/toolbox-ui/src/components/proofs/ProofsTable.tsx +++ b/packages/toolbox-ui/src/components/proofs/ProofsTable.tsx @@ -1,12 +1,13 @@ import type { ConnectionRecord, ProofExchangeRecord } from '@aries-framework/core' import { ProofsUtil } from '@animo/toolbox-core/src/utils/records/ProofsUtil' -import { Badge, createStyles, Group, ScrollArea, Table, Text, useMantineTheme } from '@mantine/core' +import { createStyles, Group, ScrollArea, Table, Text } from '@mantine/core' import React from 'react' import { useProofsFormatData } from '../../contexts/ProofsFormatDataProvider' import { RecordActions } from '../RecordActions' import { SmartAvatar } from '../SmartAvatar' +import { StatusBadge } from '../generic/table/StatusBadge' interface ProofsTableProps { records: ProofExchangeRecord[] @@ -38,7 +39,6 @@ const useStyles = createStyles(() => ({ export const ProofsTable = ({ records, connections, onDelete, onAccept, onDecline }: ProofsTableProps) => { const { classes } = useStyles() - const theme = useMantineTheme() const { formattedData } = useProofsFormatData() return ( @@ -80,7 +80,7 @@ export const ProofsTable = ({ records, connections, onDelete, onAccept, onDeclin - {record.state} + {record.state} ({ + card: { + backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[6] : theme.colors.gray[0], + boxShadow: theme.shadows.xs, + transition: 'background-color 0.2s ease', + + '&:hover': { + backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[5] : theme.colors.gray[1], + }, + }, +})) + export const AgentSelectionScreen = () => { + const { classes } = useStyles() const navigation = useNavigation() const { agents, setCurrentAgentId, loading } = useAgentManager() @@ -22,12 +35,12 @@ export const AgentSelectionScreen = () => { return ( - Agents + Agents {agents.map((agent) => ( switchToAgent(agent.id)}> - + {agent.agentConfig.label} From 77320ffeb8d3234bebeb8ab2806c9840be797453 Mon Sep 17 00:00:00 2001 From: Tom Lanser Date: Fri, 6 Jan 2023 17:18:29 +0100 Subject: [PATCH 3/8] refactor: All of the screens are now supporting theme variables Signed-off-by: Tom Lanser --- packages/toolbox-ui/src/ToolboxApp.tsx | 27 +--- packages/toolbox-ui/src/ToolboxTheme.ts | 117 ++++++++++++++++++ .../src/components/GlobalErrorHandler.tsx | 2 +- .../toolbox-ui/src/components/Loading.tsx | 20 +-- .../src/components/RecordActions.tsx | 16 ++- .../components/generic/buttons/Buttons.tsx | 20 +-- .../components/generic/table/StatusBadge.tsx | 13 +- packages/toolbox-ui/src/layout/Layout.tsx | 15 +-- .../toolbox-ui/src/layout/LayoutAvatar.tsx | 49 ++++++-- .../toolbox-ui/src/layout/LayoutNavBar.tsx | 20 +-- .../src/layout/actions/ColorSchemeSwitch.tsx | 8 +- .../src/layout/actions/LogoutAction.tsx | 10 +- .../src/modals/PresentInviteModal.tsx | 2 +- .../src/pages/AgentSelectionScreen.tsx | 34 +++-- packages/toolbox-ui/src/pages/SetupScreen.tsx | 2 +- .../agent/connections/ConnectionsScreen.tsx | 14 +-- 16 files changed, 252 insertions(+), 117 deletions(-) create mode 100644 packages/toolbox-ui/src/ToolboxTheme.ts diff --git a/packages/toolbox-ui/src/ToolboxApp.tsx b/packages/toolbox-ui/src/ToolboxApp.tsx index 5966099..67921d2 100644 --- a/packages/toolbox-ui/src/ToolboxApp.tsx +++ b/packages/toolbox-ui/src/ToolboxApp.tsx @@ -1,4 +1,4 @@ -import type { ColorScheme, MantineThemeOverride } from '@mantine/core' +import type { ColorScheme } from '@mantine/core' import type { RouterProviderProps } from 'react-router-dom' import { ColorSchemeProvider, MantineProvider } from '@mantine/core' @@ -7,6 +7,7 @@ import { NotificationsProvider } from '@mantine/notifications' import React from 'react' import { RouterProvider } from 'react-router-dom' +import { toolboxTheme } from './ToolboxTheme' import { GlobalErrorHandler } from './components/GlobalErrorHandler' import { useConfigUnsafe } from './contexts/ConfigProvider' import { PresentInviteModal } from './modals/PresentInviteModal' @@ -15,30 +16,6 @@ interface ToolboxAppProps { router: RouterProviderProps['router'] } -const toolboxTheme = (colorScheme: ColorScheme): MantineThemeOverride => ({ - colorScheme: colorScheme, - colors: { - neutral: ['#333333', '#4D4D4D', '#666666', '#808080', '#999999', '#B3B3B3', '#CCCCCC', '#E6E6E6'], - secondary: ['#F5F5F5', '#D3D3D3', '#B0B0B0', '#8E8E8E', '#6C6C6C', '#494949', '#272727', '#050505'], - background: ['#F5F5F4', '#E8E8E8', '#D3D3D3', '#BFBFBF', '#A8A8A8', '#939393', '#7D7D7D', '#666666'], - animoWhite: ['#F5F5F4', '#E8E8E8', '#D3D3D3', '#BFBFBF', '#A8A8A8', '#939393', '#7D7D7D', '#666666'], - animoCoral: ['#EA6767', '#FF8989', '#FFA5A5', '#FFBFBF', '#FFD5D5', '#FFEAEA', '#FFFFFF', '#FFC6C6'], - animoBlue: ['#557EBA', '#7B9BC9', '#A3B6D3', '#C7D3E8', '#EBF1FF', '#F4F6F9', '#F8F9FA', '#EDF0F4'], - animoBlack: ['#202223', '#3D3D3D', '#4F4F4F', '#616161', '#737373', '#858585', '#979797', '#A9A9A9'], - animoLightgrey: ['#E5E5E5', '#D3D3D3', '#BFBFBF', '#A8A8A8', '#939393', '#7D7D7D', '#666666', '#505050'], - animoDarkgrey: ['#3A3B3B', '#2F2F2F', '#3D3D3D', '#4D4D4D', '#5C5C5C', '#6B6B6B', '#7A7A7A', '#898989'], - }, - - defaultRadius: '0.25rem', - - white: '#F5F5F4', - black: '#202223', - - primaryColor: colorScheme === 'dark' ? 'animoWhite' : 'animoBlack', - - fontFamily: 'Montserrat, sans-serif', -}) - export const ToolboxApp = ({ router }: ToolboxAppProps) => { const { config, setColorScheme } = useConfigUnsafe() diff --git a/packages/toolbox-ui/src/ToolboxTheme.ts b/packages/toolbox-ui/src/ToolboxTheme.ts new file mode 100644 index 0000000..b695ee9 --- /dev/null +++ b/packages/toolbox-ui/src/ToolboxTheme.ts @@ -0,0 +1,117 @@ +import type { ColorScheme, MantineThemeOverride, Tuple } from '@mantine/core' + +type ColorShade = Tuple + +const animoColors = { + neutral: ['#E6E6E6', '#CCCCCC', '#B3B3B3', '#999999', '#808080', '#666666', '#4D4D4D', '#333333'] as ColorShade, + animoWhite: ['#666666', '#7D7D7D', '#939393', '#A8A8A8', '#BFBFBF', '#D3D3D3', '#E8E8E8', '#F5F5F4'] as ColorShade, + animoCoral: ['#FFC6C6', '#FFFFFF', '#FFEAEA', '#FFD5D5', '#FFBFBF', '#FFA5A5', '#FF8989', '#EA6767'] as ColorShade, + animoBlue: ['#EDF0F4', '#F8F9FA', '#F4F6F9', '#EBF1FF', '#C7D3E8', '#A3B6D3', '#7B9BC9', '#557EBA'] as ColorShade, + animoGreen: ['#E0F6E0', '#F5FFF5', '#EAFEEA', '#DFFEDF', '#BFEABF', '#9FD19F', '#7FB77F', '#5E9E6E'] as ColorShade, + animoYellow: ['#FEF8D5', '#FFFDF5', '#FEFCEA', '#FEF8D5', '#FDF1BF', '#FBE9A5', '#F7D97B', '#F2C94C'] as ColorShade, + animoOrange: ['#FEF8D5', '#FFFDF5', '#FEFCEA', '#FEF5D5', '#FDEABF', '#FCD19F', '#F7B77B', '#F2994A'] as ColorShade, + animoRed: ['#FFEAEA', '#FFF5F5', '#FFEAEA', '#FFD5D5', '#FFBFBF', '#FF9F9F', '#FF7B7B', '#EB5757'] as ColorShade, + animoBlack: ['#A9A9A9', '#979797', '#858585', '#737373', '#616161', '#4F4F4F', '#3D3D3D', '#202223'] as ColorShade, + animoLightgrey: [ + '#505050', + '#666666', + '#7D7D7D', + '#939393', + '#A8A8A8', + '#BFBFBF', + '#D3D3D3', + '#E5E5E5', + ] as ColorShade, + animoDarkgrey: ['#898989', '#7A7A7A', '#6B6B6B', '#5C5C5C', '#4D4D4D', '#3D3D3D', '#2F2F2F', '#3A3B3B'] as ColorShade, +} + +type AnimoVariantTheme = { + primaryOne: ColorShade + primaryTwo: ColorShade + secondaryOne: ColorShade + secondaryTwo: ColorShade + backgroundOne: ColorShade + backgroundTwo: ColorShade + grayscaleOne: ColorShade + grayscaleTwo: ColorShade + info: ColorShade + success: ColorShade + warning: ColorShade + error: ColorShade + danger: ColorShade + textOne: ColorShade + textTwo: ColorShade +} + +const animoLightTheme: AnimoVariantTheme = { + primaryOne: animoColors.animoBlack, + primaryTwo: animoColors.animoBlack, // TODO: Add a second primary color + secondaryOne: animoColors.animoWhite, + secondaryTwo: animoColors.animoWhite, // TODO: Add a second secondary color + + backgroundOne: animoColors.animoWhite, + backgroundTwo: animoColors.animoWhite, // TODO: Add a second background color + grayscaleOne: animoColors.animoLightgrey, + grayscaleTwo: animoColors.animoDarkgrey, + + info: animoColors.animoBlue, + success: animoColors.animoGreen, + warning: animoColors.animoYellow, + error: animoColors.animoCoral, + danger: animoColors.animoRed, + + textOne: animoColors.animoBlack, + textTwo: animoColors.animoWhite, +} + +const animoDarkTheme: AnimoVariantTheme = { + primaryOne: animoColors.animoWhite, + primaryTwo: animoColors.animoWhite, // TODO: Add a second primary color + secondaryOne: animoColors.animoBlack, + secondaryTwo: animoColors.animoBlack, // TODO: Add a second secondary color + + backgroundOne: animoColors.animoBlack, + backgroundTwo: animoColors.animoBlack, // TODO: Add a second background color + + grayscaleOne: animoColors.animoLightgrey, + grayscaleTwo: animoColors.animoDarkgrey, + + info: animoColors.animoBlue, + success: animoColors.animoGreen, + warning: animoColors.animoYellow, + error: animoColors.animoCoral, + danger: animoColors.animoRed, + + textOne: animoColors.animoWhite, + textTwo: animoColors.animoBlack, +} + +export const toolboxTheme = (colorScheme: ColorScheme): MantineThemeOverride => ({ + colorScheme: colorScheme, + colors: colorScheme === 'dark' ? animoDarkTheme : animoLightTheme, + + defaultRadius: '0.25rem', + + white: '#F5F5F4', + black: '#202223', + + primaryColor: 'primaryOne', + + fontFamily: 'Montserrat, sans-serif', + + components: { + Title: { + styles: (theme) => ({ + root: { + color: theme.colors.textOne[7], + }, + }), + }, + }, +}) + +declare module '@mantine/core' { + export interface MantineThemeColorsOverride { + colors: Record> + } +} diff --git a/packages/toolbox-ui/src/components/GlobalErrorHandler.tsx b/packages/toolbox-ui/src/components/GlobalErrorHandler.tsx index e31e8c9..ee1030c 100644 --- a/packages/toolbox-ui/src/components/GlobalErrorHandler.tsx +++ b/packages/toolbox-ui/src/components/GlobalErrorHandler.tsx @@ -15,7 +15,7 @@ export const GlobalErrorHandler = ({ children }: GlobalErrorHandlerProps) => { if (!(reason instanceof AriesFrameworkError)) return showNotification({ - color: 'red', + color: 'error', title: reason.name, message: reason.message, }) diff --git a/packages/toolbox-ui/src/components/Loading.tsx b/packages/toolbox-ui/src/components/Loading.tsx index dd17c42..697b3c1 100644 --- a/packages/toolbox-ui/src/components/Loading.tsx +++ b/packages/toolbox-ui/src/components/Loading.tsx @@ -1,11 +1,15 @@ -import { Center, createStyles, Flex, Loader, Text, useMantineColorScheme } from '@mantine/core' +import { useTheme } from '@emotion/react' +import { Center, createStyles, Flex, Loader, Text, useMantineTheme } from '@mantine/core' import React from 'react' -const useStyles = createStyles({ +const useStyles = createStyles((theme) => ({ spinnerCentering: { height: '100vh', }, -}) + descriptionText: { + color: theme.colors.textOne[0], + }, +})) interface LoadingProps { description?: string @@ -13,17 +17,13 @@ interface LoadingProps { export const Loading = ({ description }: LoadingProps) => { const { classes } = useStyles() - const { colorScheme } = useMantineColorScheme() + const { colors } = useMantineTheme() return (
- - {description && ( - - {description} - - )} + + {description && {description}}
) diff --git a/packages/toolbox-ui/src/components/RecordActions.tsx b/packages/toolbox-ui/src/components/RecordActions.tsx index 0dc6f5f..10bac0d 100644 --- a/packages/toolbox-ui/src/components/RecordActions.tsx +++ b/packages/toolbox-ui/src/components/RecordActions.tsx @@ -1,4 +1,4 @@ -import { ActionIcon, Group, Loader } from '@mantine/core' +import { ActionIcon, createStyles, Group, Loader } from '@mantine/core' import { IconTrash } from '@tabler/icons' import React from 'react' @@ -11,7 +11,15 @@ interface RecordActionsProps { isLoading?: boolean } +const useStyles = createStyles((theme) => ({ + trashIcon: { + color: theme.colors.danger[6], + }, +})) + export const RecordActions = ({ onAccept, onDecline, onDelete, isLoading }: RecordActionsProps) => { + const { classes } = useStyles() + const actions = [ onAccept && ( @@ -26,14 +34,14 @@ export const RecordActions = ({ onAccept, onDecline, onDelete, isLoading }: Reco ), onDelete && ( - - + + ), ].filter(Boolean) return ( - + {isLoading ? : actions} ) diff --git a/packages/toolbox-ui/src/components/generic/buttons/Buttons.tsx b/packages/toolbox-ui/src/components/generic/buttons/Buttons.tsx index 6f72f8a..2ec5052 100644 --- a/packages/toolbox-ui/src/components/generic/buttons/Buttons.tsx +++ b/packages/toolbox-ui/src/components/generic/buttons/Buttons.tsx @@ -9,20 +9,22 @@ interface ClickAble { const useStyles = createStyles((theme) => ({ primary: { - backgroundColor: theme.colorScheme === 'dark' ? theme.colors.animoWhite[0] : theme.colors.animoBlack[0], - color: theme.colorScheme === 'dark' ? theme.colors.animoBlack[0] : theme.colors.animoWhite[0], + backgroundColor: theme.colors.primaryOne[7], + color: theme.colors.textTwo[7], + transition: 'background-color 0.2s ease', '&:hover': { - backgroundColor: theme.colorScheme === 'dark' ? theme.colors.animoWhite[0] : theme.colors.animoBlack[0], + backgroundColor: theme.colors.primaryOne[6], }, }, secondary: { - backgroundColor: theme.colorScheme === 'dark' ? theme.colors.animoBlack[0] : theme.colors.animoWhite[0], - color: theme.colorScheme === 'dark' ? theme.colors.animoWhite[0] : theme.colors.animoBlack[0], + backgroundColor: theme.colors.secondaryOne[7], + color: theme.colors.textTwo[0], + transition: 'background-color 0.2s ease', '&:hover': { - backgroundColor: theme.colorScheme === 'dark' ? theme.colors.animoBlack[1] : theme.colors.animoWhite[1], + backgroundColor: theme.colors.secondaryOne[6], }, }, })) @@ -30,15 +32,15 @@ const useStyles = createStyles((theme) => ({ export const PrimaryButton = (props: ButtonProps & ClickAble) => { const { classes, cx } = useStyles() - return
- Scan this QR code with your mobile device. + Scan the QR-code with your wallet. - + - Copy url + Copy url ) diff --git a/packages/toolbox-ui/src/pages/AgentSelectionScreen.tsx b/packages/toolbox-ui/src/pages/AgentSelectionScreen.tsx index 48b034b..36f0eec 100644 --- a/packages/toolbox-ui/src/pages/AgentSelectionScreen.tsx +++ b/packages/toolbox-ui/src/pages/AgentSelectionScreen.tsx @@ -6,12 +6,12 @@ import { Loading } from '../components/Loading' import { SmartAvatar } from '../components/SmartAvatar' import { useAgentManager } from '../contexts/AgentManagerContext' import { useNavigation } from '../hooks/useNavigation' +import { ColorSchemeSwitch } from '../layout/actions/ColorSchemeSwitch' const useStyles = createStyles((theme) => ({ card: { backgroundColor: theme.colors.secondaryOne[6], boxShadow: theme.shadows.xs, - transition: 'background-color 0.2s ease', '&:hover': { backgroundColor: theme.colors.secondaryOne[5], @@ -50,16 +50,19 @@ export const AgentSelectionScreen = () => { return ( - - Agents - + + + Agents + + + {agents.map((agent) => ( switchToAgent(agent.id)}> - + - + {agent.agentConfig.label} diff --git a/packages/toolbox-ui/src/pages/agent/connections/ConnectionsScreen.tsx b/packages/toolbox-ui/src/pages/agent/connections/ConnectionsScreen.tsx index ccf6e1d..e8a50b2 100644 --- a/packages/toolbox-ui/src/pages/agent/connections/ConnectionsScreen.tsx +++ b/packages/toolbox-ui/src/pages/agent/connections/ConnectionsScreen.tsx @@ -1,8 +1,9 @@ import { useAgent, useConnections } from '@aries-framework/react-hooks' -import { Box, Flex, TextInput, Title } from '@mantine/core' +import { Box, createStyles, Flex, TextInput, Title, Tooltip } from '@mantine/core' import { useForm } from '@mantine/form' import { openContextModal } from '@mantine/modals' import { showNotification } from '@mantine/notifications' +import { IconPlus } from '@tabler/icons' import React from 'react' import { Loading } from '../../../components/Loading' From 62eb4931e29b9b3dbc158a1ac7a81cf82e61ea0e Mon Sep 17 00:00:00 2001 From: Tom Lanser Date: Wed, 11 Jan 2023 11:01:59 +0100 Subject: [PATCH 7/8] fix: Fixed some linting errors Signed-off-by: Tom Lanser --- .../src/components/connections/ConnectionsTable.tsx | 3 +-- packages/toolbox-ui/src/layout/LayoutNavBar.tsx | 6 +++--- .../src/pages/agent/connections/ConnectionsScreen.tsx | 3 +-- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/packages/toolbox-ui/src/components/connections/ConnectionsTable.tsx b/packages/toolbox-ui/src/components/connections/ConnectionsTable.tsx index 388ee6e..69e8c56 100644 --- a/packages/toolbox-ui/src/components/connections/ConnectionsTable.tsx +++ b/packages/toolbox-ui/src/components/connections/ConnectionsTable.tsx @@ -1,8 +1,7 @@ import type { ConnectionRecord } from '@aries-framework/core' import { ConnectionsUtil } from '@animo/toolbox-core/src/utils/records/ConnectionsUtil' -import { Box, createStyles, Flex, Group, ScrollArea, Table, Text } from '@mantine/core' -import { IconDatabaseOff } from '@tabler/icons' +import { createStyles, Group, ScrollArea, Table, Text } from '@mantine/core' import React from 'react' import { RecordActions } from '../RecordActions' diff --git a/packages/toolbox-ui/src/layout/LayoutNavBar.tsx b/packages/toolbox-ui/src/layout/LayoutNavBar.tsx index 5dc41e0..0a3c6f8 100644 --- a/packages/toolbox-ui/src/layout/LayoutNavBar.tsx +++ b/packages/toolbox-ui/src/layout/LayoutNavBar.tsx @@ -1,14 +1,14 @@ import type { Agent } from '@aries-framework/core' import type { TablerIcon } from '@tabler/icons' -import { createStyles, Group, Navbar } from "@mantine/core"; +import { createStyles, Group, Navbar } from '@mantine/core' import React, { useState } from 'react' import { useNavigation } from '../hooks/useNavigation' import { LayoutAvatar } from './LayoutAvatar' -import { LogoutAction } from "./actions/LogoutAction"; -import { ColorSchemeSwitch } from "./actions/ColorSchemeSwitch"; +import { ColorSchemeSwitch } from './actions/ColorSchemeSwitch' +import { LogoutAction } from './actions/LogoutAction' export interface NavigationItem { name: string diff --git a/packages/toolbox-ui/src/pages/agent/connections/ConnectionsScreen.tsx b/packages/toolbox-ui/src/pages/agent/connections/ConnectionsScreen.tsx index e8a50b2..ccf6e1d 100644 --- a/packages/toolbox-ui/src/pages/agent/connections/ConnectionsScreen.tsx +++ b/packages/toolbox-ui/src/pages/agent/connections/ConnectionsScreen.tsx @@ -1,9 +1,8 @@ import { useAgent, useConnections } from '@aries-framework/react-hooks' -import { Box, createStyles, Flex, TextInput, Title, Tooltip } from '@mantine/core' +import { Box, Flex, TextInput, Title } from '@mantine/core' import { useForm } from '@mantine/form' import { openContextModal } from '@mantine/modals' import { showNotification } from '@mantine/notifications' -import { IconPlus } from '@tabler/icons' import React from 'react' import { Loading } from '../../../components/Loading' From 288a18655c9ee6877ca5bd33ba8fe09a5dbe8991 Mon Sep 17 00:00:00 2001 From: Tom Lanser Date: Wed, 11 Jan 2023 12:39:06 +0100 Subject: [PATCH 8/8] refactor: Processed the PR comments Signed-off-by: Tom Lanser --- .../src/components/connections/ConnectionsTable.tsx | 4 ++-- .../src/components/credentials/CredentialsTable.tsx | 4 ++-- packages/toolbox-ui/src/components/proofs/ProofsTable.tsx | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/toolbox-ui/src/components/connections/ConnectionsTable.tsx b/packages/toolbox-ui/src/components/connections/ConnectionsTable.tsx index 69e8c56..5a5d725 100644 --- a/packages/toolbox-ui/src/components/connections/ConnectionsTable.tsx +++ b/packages/toolbox-ui/src/components/connections/ConnectionsTable.tsx @@ -51,13 +51,13 @@ export const ConnectionsTable = ({ records, onDelete, onAccept, onDecline }: Con - {records.length === 0 ? ( + {records.length === 0 && ( - ) : null} + )} {records.map((record: ConnectionRecord) => { const isLoading = ConnectionsUtil.isConnectionWaitingForResponse(record) const isWaitingForAccept = ConnectionsUtil.isConnectionWaitingForAcceptInput(record) diff --git a/packages/toolbox-ui/src/components/credentials/CredentialsTable.tsx b/packages/toolbox-ui/src/components/credentials/CredentialsTable.tsx index 108e6d5..6c6aa80 100644 --- a/packages/toolbox-ui/src/components/credentials/CredentialsTable.tsx +++ b/packages/toolbox-ui/src/components/credentials/CredentialsTable.tsx @@ -51,13 +51,13 @@ export const CredentialsTable = ({ records, connections, onDelete, onAccept, onD - {records.length === 0 ? ( + {records.length === 0 && ( - ) : null} + )} {records.map((record) => { const connection = connections.find((connection) => connection.id == record.connectionId) const formattedCredential = formattedData.find((data) => data.id === record.id) diff --git a/packages/toolbox-ui/src/components/proofs/ProofsTable.tsx b/packages/toolbox-ui/src/components/proofs/ProofsTable.tsx index 7be1779..d7b7f99 100644 --- a/packages/toolbox-ui/src/components/proofs/ProofsTable.tsx +++ b/packages/toolbox-ui/src/components/proofs/ProofsTable.tsx @@ -54,13 +54,13 @@ export const ProofsTable = ({ records, connections, onDelete, onAccept, onDeclin - {records.length === 0 ? ( + {records.length === 0 && ( - ) : null} + )} {records.map((record) => { const connection = connections.find((connection) => connection.id === record.connectionId) const formattedProof = formattedData.find((proof) => proof.id === record.id)