Dashboards UI Improvements.
This commit is contained in:
parent
13631765e4
commit
b7b9a897a7
9 changed files with 40 additions and 36 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import {Card, Col, Modal, Row, Typography} from "antd";
|
import {Card, Col, Modal, Row, Typography} from "antd";
|
||||||
import {Grid2x2CheckIcon, Plus} from "lucide-react";
|
import {GalleryVertical, Plus} from "lucide-react";
|
||||||
import NewDashboardModal from "Components/Dashboard/components/DashboardList/NewDashModal";
|
import NewDashboardModal from "Components/Dashboard/components/DashboardList/NewDashModal";
|
||||||
import {useStore} from "App/mstore";
|
import {useStore} from "App/mstore";
|
||||||
|
|
||||||
|
|
@ -33,24 +33,22 @@ function AddCardSelectionModal(props: Props) {
|
||||||
open={props.open}
|
open={props.open}
|
||||||
footer={null}
|
footer={null}
|
||||||
onCancel={props.onClose}
|
onCancel={props.onClose}
|
||||||
|
className='addCard'
|
||||||
>
|
>
|
||||||
<Row gutter={16} justify="center">
|
<Row gutter={16} justify="center">
|
||||||
<Col span={12}>
|
<Col span={12}>
|
||||||
<Card hoverable onClick={() => onClick(true)}>
|
<div className="flex flex-col items-center justify-center hover:bg-indigo-50 border rounded-lg shadow-sm cursor-pointer gap-3" style={{height: '80px'}} onClick={() => onClick(true)}>
|
||||||
<div className="flex flex-col items-center justify-center" style={{height: '80px'}}>
|
<GalleryVertical style={{fontSize: '24px', color: '#394EFF'}}/>
|
||||||
<Grid2x2CheckIcon style={{fontSize: '24px', color: '#394EFF'}}/>
|
<Typography.Text strong>Add from library</Typography.Text>
|
||||||
<Typography.Text strong>Add from library</Typography.Text>
|
{/*<p>Select from 12 available</p>*/}
|
||||||
{/*<p>Select from 12 available</p>*/}
|
</div>
|
||||||
</div>
|
|
||||||
</Card>
|
|
||||||
</Col>
|
</Col>
|
||||||
<Col span={12}>
|
<Col span={12}>
|
||||||
<Card hoverable onClick={() => onClick(false)}>
|
<div className="flex flex-col items-center justify-center hover:bg-indigo-50 border rounded-lg shadow-sm cursor-pointer gap-3" style={{height: '80px'}} onClick={() => onClick(false)}>
|
||||||
<div className="flex flex-col items-center justify-center" style={{height: '80px'}}>
|
<Plus style={{fontSize: '24px', color: '#394EFF'}}/>
|
||||||
<Plus style={{fontSize: '24px', color: '#394EFF'}}/>
|
<Typography.Text strong>Create New Card</Typography.Text>
|
||||||
<Typography.Text strong>Create New Card</Typography.Text>
|
</div>
|
||||||
</div>
|
|
||||||
</Card>
|
|
||||||
</Col>
|
</Col>
|
||||||
</Row>
|
</Row>
|
||||||
</Modal>
|
</Modal>
|
||||||
|
|
|
||||||
|
|
@ -89,7 +89,7 @@ function CardIssues() {
|
||||||
};
|
};
|
||||||
|
|
||||||
return useObserver(() => (
|
return useObserver(() => (
|
||||||
<div className='my-8 bg-white rounded p-4 border'>
|
<div className='bg-white rounded p-4 border'>
|
||||||
<div className='flex justify-between'>
|
<div className='flex justify-between'>
|
||||||
<div className='flex items-center'>
|
<div className='flex items-center'>
|
||||||
<h1 className='font-medium text-2xl'>Issues</h1>
|
<h1 className='font-medium text-2xl'>Issues</h1>
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ function CardUserList(props: RouteComponentProps<Props>) {
|
||||||
}, [userId]);
|
}, [userId]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="my-8 bg-white rounded p-4 border">
|
<div className="bg-white rounded p-4 border">
|
||||||
<div className="flex justify-between">
|
<div className="flex justify-between">
|
||||||
<h1 className="font-medium text-2xl">Returning users between</h1>
|
<h1 className="font-medium text-2xl">Returning users between</h1>
|
||||||
<div>
|
<div>
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ function FunnelIssues() {
|
||||||
}, [stages.length, drillDownPeriod, filter.filters, depsString, metricStore.sessionsPage]);
|
}, [stages.length, drillDownPeriod, filter.filters, depsString, metricStore.sessionsPage]);
|
||||||
|
|
||||||
return useObserver(() => (
|
return useObserver(() => (
|
||||||
<div className="my-8 bg-white rounded p-4 border">
|
<div className="bg-white rounded p-4 border">
|
||||||
<div className="flex">
|
<div className="flex">
|
||||||
<h2 className="font-medium text-xl">Most significant issues <span className="font-normal">identified in this funnel</span></h2>
|
<h2 className="font-medium text-xl">Most significant issues <span className="font-normal">identified in this funnel</span></h2>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import {useHistory} from "react-router";
|
import {useHistory} from "react-router";
|
||||||
import {useStore} from "App/mstore";
|
import {useStore} from "App/mstore";
|
||||||
import {useObserver} from "mobx-react-lite";
|
import {useObserver} from "mobx-react-lite";
|
||||||
import {Button, Drawer, Dropdown, MenuProps, message, Modal} from "antd";
|
import {Button, Dropdown, MenuProps, message, Modal} from "antd";
|
||||||
import {BellIcon, EllipsisVertical, TrashIcon} from "lucide-react";
|
import {BellIcon, EllipsisVertical, TrashIcon} from "lucide-react";
|
||||||
import {toast} from "react-toastify";
|
import {toast} from "react-toastify";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
|
|
@ -36,8 +36,7 @@ const CardViewMenu = () => {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: 'remove',
|
key: 'remove',
|
||||||
danger: true,
|
label: 'Delete',
|
||||||
label: 'Remove',
|
|
||||||
icon: <TrashIcon size={16}/>,
|
icon: <TrashIcon size={16}/>,
|
||||||
onClick: () => {
|
onClick: () => {
|
||||||
Modal.confirm({
|
Modal.confirm({
|
||||||
|
|
|
||||||
|
|
@ -76,7 +76,7 @@ function ResetPasswordRequest(props: Props) {
|
||||||
/>
|
/>
|
||||||
</Form.Field>
|
</Form.Field>
|
||||||
<Button type="submit" variant="primary" className="mt-4 rounded-lg" loading={loading} disabled={loading}>
|
<Button type="submit" variant="primary" className="mt-4 rounded-lg" loading={loading} disabled={loading}>
|
||||||
Email password reset link
|
Email Password Reset Link
|
||||||
</Button>
|
</Button>
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ function FunnelBar(props: Props) {
|
||||||
cursor: 'pointer',
|
cursor: 'pointer',
|
||||||
}}
|
}}
|
||||||
onClick={() => focusStage?.(index! - 1, filter.isActive)}
|
onClick={() => focusStage?.(index! - 1, filter.isActive)}
|
||||||
className={'hover:border border-red-lightest'}
|
className={'hover:opacity-75'}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex justify-between py-2">
|
<div className="flex justify-between py-2">
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import cn from 'classnames';
|
||||||
import stl from './FunnelWidget.module.css';
|
import stl from './FunnelWidget.module.css';
|
||||||
import { observer } from 'mobx-react-lite';
|
import { observer } from 'mobx-react-lite';
|
||||||
import { NoContent, Icon } from 'UI';
|
import { NoContent, Icon } from 'UI';
|
||||||
|
import { Tag, Tooltip } from 'antd';
|
||||||
import { useModal } from 'App/components/Modal';
|
import { useModal } from 'App/components/Modal';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
|
|
@ -90,19 +91,21 @@ function FunnelWidget(props: Props) {
|
||||||
</div>
|
</div>
|
||||||
<div className="flex items-center pb-4">
|
<div className="flex items-center pb-4">
|
||||||
<div className="flex items-center">
|
<div className="flex items-center">
|
||||||
<span className="text-xl mr-2">Lost conversion</span>
|
<span className="text-base font-medium mr-2">Lost conversion</span>
|
||||||
<div className="rounded px-2 py-1 bg-red-lightest color-red">
|
<Tooltip title={`${funnel.lostConversions} Sessions ${funnel.lostConversionsPercentage}%`}>
|
||||||
<span className="text-xl mr-2 font-medium">{funnel.lostConversions}</span>
|
<Tag bordered={false} color="red" className='text-lg font-medium rounded-lg'>
|
||||||
<span className="text-sm">({funnel.lostConversionsPercentage}%)</span>
|
{funnel.lostConversions}
|
||||||
</div>
|
</Tag>
|
||||||
|
</Tooltip>
|
||||||
</div>
|
</div>
|
||||||
<div className="mx-3" />
|
<div className="mx-3" />
|
||||||
<div className="flex items-center">
|
<div className="flex items-center">
|
||||||
<span className="text-xl mr-2">Total conversion</span>
|
<span className="text-base font-medium mr-2">Total conversion</span>
|
||||||
<div className="rounded px-2 py-1 bg-tealx-lightest color-tealx">
|
<Tooltip title={`${funnel.totalConversions} Sessions ${funnel.totalConversionsPercentage}%`}>
|
||||||
<span className="text-xl mr-2 font-medium">{funnel.totalConversions}</span>
|
<Tag bordered={false} color="cyan" className='text-lg font-medium rounded-lg'>
|
||||||
<span className="text-sm">({funnel.totalConversionsPercentage}%)</span>
|
{funnel.totalConversions}
|
||||||
</div>
|
</Tag>
|
||||||
|
</Tooltip>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{funnel.totalDropDueToIssues > 0 && <div className="flex items-center mb-2"><Icon name="magic" /> <span className="ml-2">{funnel.totalDropDueToIssues} sessions dropped due to issues.</span></div>}
|
{funnel.totalDropDueToIssues > 0 && <div className="flex items-center mb-2"><Icon name="magic" /> <span className="ml-2">{funnel.totalDropDueToIssues} sessions dropped due to issues.</span></div>}
|
||||||
|
|
|
||||||
|
|
@ -93,7 +93,7 @@ const SignupForm: React.FC<SignupFormProps> = ({ tenants, errors, loading, signu
|
||||||
<div className='m-10 '>
|
<div className='m-10 '>
|
||||||
<img src='/assets/logo.svg' width={200} alt='Logo' />
|
<img src='/assets/logo.svg' width={200} alt='Logo' />
|
||||||
</div>
|
</div>
|
||||||
<Form onSubmit={onSubmit} className='bg-white border rounded' style={{ maxWidth: '420px' }}>
|
<Form onSubmit={onSubmit} className='bg-white border rounded-lg shadow-sm' style={{ maxWidth: '420px' }}>
|
||||||
<div className='mb-8'>
|
<div className='mb-8'>
|
||||||
<h2 className='text-center text-2xl font-medium mb-6 border-b p-5 w-full'>
|
<h2 className='text-center text-2xl font-medium mb-6 border-b p-5 w-full'>
|
||||||
Create Account
|
Create Account
|
||||||
|
|
@ -134,6 +134,7 @@ const SignupForm: React.FC<SignupFormProps> = ({ tenants, errors, loading, signu
|
||||||
onChange={write}
|
onChange={write}
|
||||||
required={true}
|
required={true}
|
||||||
icon='envelope'
|
icon='envelope'
|
||||||
|
className='rounded-lg'
|
||||||
/>
|
/>
|
||||||
</Form.Field>
|
</Form.Field>
|
||||||
<Form.Field>
|
<Form.Field>
|
||||||
|
|
@ -146,6 +147,7 @@ const SignupForm: React.FC<SignupFormProps> = ({ tenants, errors, loading, signu
|
||||||
onChange={write}
|
onChange={write}
|
||||||
required={true}
|
required={true}
|
||||||
icon='key'
|
icon='key'
|
||||||
|
className='rounded-lg'
|
||||||
/>
|
/>
|
||||||
</Form.Field>
|
</Form.Field>
|
||||||
<Form.Field>
|
<Form.Field>
|
||||||
|
|
@ -157,6 +159,7 @@ const SignupForm: React.FC<SignupFormProps> = ({ tenants, errors, loading, signu
|
||||||
onChange={write}
|
onChange={write}
|
||||||
required={true}
|
required={true}
|
||||||
icon='user-alt'
|
icon='user-alt'
|
||||||
|
className='rounded-lg'
|
||||||
/>
|
/>
|
||||||
</Form.Field>
|
</Form.Field>
|
||||||
<Form.Field>
|
<Form.Field>
|
||||||
|
|
@ -168,13 +171,14 @@ const SignupForm: React.FC<SignupFormProps> = ({ tenants, errors, loading, signu
|
||||||
onChange={write}
|
onChange={write}
|
||||||
required={true}
|
required={true}
|
||||||
icon='buildings'
|
icon='buildings'
|
||||||
|
className='rounded-lg'
|
||||||
/>
|
/>
|
||||||
</Form.Field>
|
</Form.Field>
|
||||||
|
|
||||||
{passwordError && (
|
{passwordError && (
|
||||||
// <Alert type='error' message={PASSWORD_POLICY} banner icon={null} />
|
// <Alert type='error' message={PASSWORD_POLICY} banner icon={null} />
|
||||||
<Alert
|
<Alert
|
||||||
className='my-3'
|
className='my-3 rounded-lg'
|
||||||
// message="Error Text"
|
// message="Error Text"
|
||||||
description={PASSWORD_POLICY}
|
description={PASSWORD_POLICY}
|
||||||
type='error'
|
type='error'
|
||||||
|
|
@ -182,14 +186,14 @@ const SignupForm: React.FC<SignupFormProps> = ({ tenants, errors, loading, signu
|
||||||
)}
|
)}
|
||||||
{errors && errors.length && (
|
{errors && errors.length && (
|
||||||
<Alert
|
<Alert
|
||||||
className='my-3'
|
className='my-3 rounded-lg'
|
||||||
// message="Error Text"
|
// message="Error Text"
|
||||||
description={errors[0]}
|
description={errors[0]}
|
||||||
type='error'
|
type='error'
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
<Button type='submit' variant='primary' loading={loading} className='w-full'>
|
<Button type='submit' variant='primary' loading={loading} className='w-full rounded-lg'>
|
||||||
Create Account
|
Create Account
|
||||||
</Button>
|
</Button>
|
||||||
<div className='my-6'>
|
<div className='my-6'>
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue