mirror of
https://github.com/labring/FastGPT.git
synced 2025-08-01 11:58:38 +00:00

* perf: redirect request and err log replace perf: dataset openapi feat: session fix: retry input error feat: 468 doc sub page feat: standard sub perf: rerank tip perf: rerank tip perf: api sdk perf: openapi sub plan perf: sub ui fix: ts * perf: init log * fix: variable select * sub page * icon * perf: llm model config * perf: menu ux * perf: system store * perf: publish app name * fix: init data * perf: flow edit ux * fix: value type format and ux * fix prompt editor default value (#13) * fix prompt editor default value * fix prompt editor update when not focus * add key with variable --------- Co-authored-by: Archer <545436317@qq.com> * fix: value type * doc * i18n * import path * home page * perf: mongo session running * fix: ts * perf: use toast * perf: flow edit * perf: sse response * slider ui * fetch error * fix prompt editor rerender when not focus by key defaultvalue (#14) * perf: prompt editor * feat: dataset search concat * perf: doc * fix:ts * perf: doc * fix json editor onblur value (#15) * faq * vector model default config * ipv6 --------- Co-authored-by: heheer <71265218+newfish-cmyk@users.noreply.github.com>
119 lines
2.5 KiB
TypeScript
119 lines
2.5 KiB
TypeScript
import React, { useMemo } from 'react';
|
|
import {
|
|
Slider,
|
|
SliderTrack,
|
|
SliderFilledTrack,
|
|
SliderThumb,
|
|
SliderMark,
|
|
Box
|
|
} from '@chakra-ui/react';
|
|
|
|
const MySlider = ({
|
|
markList = [],
|
|
onChange,
|
|
value,
|
|
max = 100,
|
|
min = 0,
|
|
step = 1,
|
|
width = '100%'
|
|
}: {
|
|
markList?: {
|
|
label: string | number;
|
|
value: number;
|
|
}[];
|
|
value: number;
|
|
onChange?: (index: number) => void;
|
|
max?: number;
|
|
min?: number;
|
|
step?: number;
|
|
width?: string | string[] | number | number[];
|
|
}) => {
|
|
const startEndPointStyle = {
|
|
content: '""',
|
|
borderRadius: '6px',
|
|
width: '6px',
|
|
height: '6px',
|
|
backgroundColor: '#ffffff',
|
|
border: '2px solid #D7DBE2',
|
|
position: 'absolute',
|
|
zIndex: 1,
|
|
top: 0,
|
|
transform: 'translateY(-3px)'
|
|
};
|
|
|
|
return (
|
|
<Box pb={4} zIndex={10}>
|
|
<Slider
|
|
max={max}
|
|
min={min}
|
|
step={step}
|
|
size={'lg'}
|
|
value={value}
|
|
width={width}
|
|
onChange={onChange}
|
|
_hover={{
|
|
'& .marker': {
|
|
display: 'block'
|
|
}
|
|
}}
|
|
_active={{
|
|
'& .marker': {
|
|
display: 'block'
|
|
}
|
|
}}
|
|
>
|
|
{markList?.map((item, i) => (
|
|
<SliderMark
|
|
key={item.value}
|
|
value={item.value}
|
|
fontSize={'sm'}
|
|
mt={2}
|
|
whiteSpace={'nowrap'}
|
|
transform={'translateX(-50%)'}
|
|
color={'myGray.600'}
|
|
>
|
|
<Box px={3} cursor={'pointer'}>
|
|
{item.label}
|
|
</Box>
|
|
</SliderMark>
|
|
))}
|
|
<SliderMark
|
|
className="marker"
|
|
value={value}
|
|
textAlign="center"
|
|
bg="primary.500"
|
|
color="white"
|
|
px={1}
|
|
minW={'20px'}
|
|
w={'auto'}
|
|
py={'1px'}
|
|
borderRadius={'md'}
|
|
transform={'translate(-50%, -155%)'}
|
|
fontSize={'11px'}
|
|
display={'none'}
|
|
>
|
|
<Box transform={'scale(0.9)'}>{value}</Box>
|
|
</SliderMark>
|
|
<SliderTrack
|
|
bg={'#EAEDF3'}
|
|
overflow={'visible'}
|
|
h={'4px'}
|
|
_before={{
|
|
...startEndPointStyle,
|
|
left: '-3px'
|
|
}}
|
|
_after={{
|
|
...startEndPointStyle,
|
|
right: '-3px'
|
|
}}
|
|
>
|
|
<SliderFilledTrack bg={'primary.500'} />
|
|
</SliderTrack>
|
|
<SliderThumb border={'3px solid'} borderColor={'primary.500'}></SliderThumb>
|
|
</Slider>
|
|
</Box>
|
|
);
|
|
};
|
|
|
|
export default MySlider;
|