1
0
mirror of https://github.com/oceanprotocol/market.git synced 2024-12-02 05:57:29 +01:00

spacing, more file moving around

This commit is contained in:
Matthias Kretschmann 2022-01-25 12:53:10 +00:00
parent 58f1c884de
commit 7a5651e3a8
Signed by: m
GPG Key ID: 606EEEF3C479A91F
4 changed files with 67 additions and 83 deletions

View File

@ -1,14 +1,23 @@
import { formatPrice } from '@shared/Price/PriceUnit'
import { import {
Chart as ChartJS,
LinearScale,
CategoryScale,
PointElement,
Tooltip,
BarElement,
LineElement,
LineController,
BarController,
ChartDataset, ChartDataset,
TooltipOptions, TooltipOptions,
ChartOptions, defaults
TooltipItem
} from 'chart.js' } from 'chart.js'
import { gql } from 'urql' import { gql } from 'urql'
export declare type GraphType = 'liquidity' | 'price' | 'volume' export declare type GraphType = 'liquidity' | 'price' | 'volume'
export const graphTypes = ['Liquidity', 'Price', 'Volume']
export const poolHistoryQuery = gql` export const poolHistoryQuery = gql`
query PoolHistory($id: String!) { query PoolHistory($id: String!) {
poolSnapshots(first: 1000, where: { pool: $id }, orderBy: date) { poolSnapshots(first: 1000, where: { pool: $id }, orderBy: date) {
@ -21,6 +30,21 @@ export const poolHistoryQuery = gql`
} }
` `
// Chart.js global defaults
ChartJS.register(
LineElement,
BarElement,
PointElement,
LinearScale,
CategoryScale,
Tooltip,
LineController,
BarController
)
defaults.font.family = `'Sharp Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif`
defaults.animation = { easing: 'easeInOutQuart', duration: 1000 }
export const lineStyle: Partial<ChartDataset> = { export const lineStyle: Partial<ChartDataset> = {
fill: false, fill: false,
borderWidth: 2, borderWidth: 2,
@ -40,36 +64,3 @@ export const tooltipOptions: Partial<TooltipOptions> = {
borderWidth: 1, borderWidth: 1,
caretSize: 7 caretSize: 7
} }
export function getOptions(locale: string, isDarkMode: boolean): ChartOptions {
return {
layout: {
padding: {
left: 0,
right: 0,
top: 0,
bottom: 10
}
},
plugins: {
tooltip: {
...tooltipOptions,
backgroundColor: isDarkMode ? `#141414` : `#fff`,
titleColor: isDarkMode ? `#e2e2e2` : `#303030`,
bodyColor: isDarkMode ? `#fff` : `#141414`,
borderColor: isDarkMode ? `#41474e` : `#e2e2e2`,
callbacks: {
label: (tooltipItem: TooltipItem<any>) =>
`${formatPrice(`${tooltipItem.formattedValue}`, locale)} OCEAN`
}
}
},
hover: { intersect: false },
scales: {
y: { display: false },
x: { display: false }
}
}
}
export const graphTypes = ['Liquidity', 'Price', 'Volume']

View File

@ -0,0 +1,34 @@
import { formatPrice } from '@shared/Price/PriceUnit'
import { ChartOptions, TooltipItem } from 'chart.js'
import { tooltipOptions } from './_constants'
export function getOptions(locale: string, isDarkMode: boolean): ChartOptions {
return {
layout: {
padding: {
left: 0,
right: 0,
top: 0,
bottom: 20
}
},
plugins: {
tooltip: {
...tooltipOptions,
backgroundColor: isDarkMode ? `#141414` : `#fff`,
titleColor: isDarkMode ? `#e2e2e2` : `#303030`,
bodyColor: isDarkMode ? `#fff` : `#141414`,
borderColor: isDarkMode ? `#41474e` : `#e2e2e2`,
callbacks: {
label: (tooltipItem: TooltipItem<any>) =>
`${formatPrice(`${tooltipItem.formattedValue}`, locale)} OCEAN`
}
}
},
hover: { intersect: false },
scales: {
y: { display: false },
x: { display: false }
}
}
}

View File

@ -1,5 +1,5 @@
.graphWrap { .graphWrap {
min-height: 97px; min-height: 90px;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;

View File

@ -1,27 +1,5 @@
import React, { import React, { ReactElement, useCallback, useEffect, useState } from 'react'
ChangeEvent, import { ChartData, ChartOptions } from 'chart.js'
ReactElement,
useCallback,
useEffect,
useState
} from 'react'
import {
Chart as ChartJS,
LinearScale,
CategoryScale,
PointElement,
Tooltip,
ChartData,
ChartOptions,
defaults,
ChartDataset,
TooltipOptions,
TooltipItem,
BarElement,
LineElement,
LineController,
BarController
} from 'chart.js'
import { Chart } from 'react-chartjs-2' import { Chart } from 'react-chartjs-2'
import Loader from '@shared/atoms/Loader' import Loader from '@shared/atoms/Loader'
import { useUserPreferences } from '@context/UserPreferences' import { useUserPreferences } from '@context/UserPreferences'
@ -34,28 +12,9 @@ import { PoolHistory } from '../../../../../@types/subgraph/PoolHistory'
import { fetchData, getQueryContext } from '@utils/subgraph' import { fetchData, getQueryContext } from '@utils/subgraph'
import styles from './index.module.css' import styles from './index.module.css'
import Decimal from 'decimal.js' import Decimal from 'decimal.js'
import { import { poolHistoryQuery, lineStyle, GraphType } from './_constants'
poolHistoryQuery,
getOptions,
lineStyle,
GraphType
} from './_constants'
import Nav from './Nav' import Nav from './Nav'
import { getOptions } from './_utils'
ChartJS.register(
LineElement,
BarElement,
PointElement,
LinearScale,
CategoryScale,
Tooltip,
LineController,
BarController
)
// Chart.js global defaults
defaults.font.family = `'Sharp Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif`
defaults.animation = { easing: 'easeInOutQuart', duration: 1000 }
export default function Graph(): ReactElement { export default function Graph(): ReactElement {
const { locale } = useUserPreferences() const { locale } = useUserPreferences()
@ -190,7 +149,7 @@ export default function Graph(): ReactElement {
<Chart <Chart
type={graphType === 'volume' ? 'bar' : 'line'} type={graphType === 'volume' ? 'bar' : 'line'}
width={416} width={416}
height={80} height={90}
data={graphData} data={graphData}
options={options} options={options}
redraw redraw