1.0.1 • Published 2 years ago

gangstarr-point-styler v1.0.1

Weekly downloads
-
License
-
Repository
-
Last release
2 years ago

Team Gangstarr

šŸ—‚ļø ķ”„ė”œģ ķŠø ģ†Œź°œ

ģ›…ģ§„XģŠ¤ė‚˜ģ“ķ¼ ķŒ©ķ† ė¦¬ ģ¼ź²½ķ—˜ ķ”„ė”œģ ķŠøģ˜ ģ¼ķ™˜ģœ¼ė”œ ķ†µģ¦ź“€ė¦¬ģ‹œģŠ¤ķ…œ ė””ģžģø ė¼ģ“ėøŒėŸ¬ė¦¬ ģ œģž‘ķ•˜ģ˜€ģŠµė‹ˆė‹¤.

šŸŒ• ķŒ€ģ†Œź°œ

ķŒ€ģž„ķŒ€ģ›ķŒ€ģ›ķŒ€ģ›
ķ™ģ„±ģø 🐧 ģ ˆėŒ€ ķ¬źø°ķ•˜ģ§€ 마.김준경 🐱 개발 ź°±ģŠ¤ķ„°ź°€ ė ėž˜ģš”ģ •ģ—°ģš° 🐬 ģµœź³ ė³“ė‹¤ėŠ” ģµœģ„ ģ„.ģµœė™ķ™˜ šŸ¦„ ģ–“? źøˆģ§€

ģ„¤ģ¹˜ 방법

npm i gangstarr-point-styler

ģ •ģƒģ ģø ģŠ¤ķƒ€ģ¼ģ„ ģœ„ķ•“ģ„œėŠ” Provider넼 ģ ģš©ķ•“ģ•¼ķ•“ģš”!

import { PoinTStyleProvider } from 'gangstarr-point-styler';

...

return (
  <PoinTStyleProvider>
  </PoinTStyleProvider>
)

...

ģ‚¬ģš©ė²•

color와 font

import후 color.gray100와 ź°™ģ€ ķ˜•ķƒœė”œ ģ‚¬ģš©ķ•“ģš”.

import { color, font } from "gangstarr-point-styler";

...

const Component = styled.div`
  color: ${color.gray100}
`

...

AppBar

ė””ķ…Œģ¼ ķŽ˜ģ“ģ§€ģ—ģ„œ ģ‚¬ģš©ķ•˜ėŠ” AppBarģž…ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

import { AppBar } from 'gangstarr-point-styler';
...
<AppBar title='ķŽ˜ģ“ģ§€ ģ“ė¦„' size='full' icon={[{iconName: 'add', func: () => {console.log('큓릭')}}]} />
...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
size'medium','large','full'AppBarģ˜ 크기넼 ź²°ģ •ķ•©ė‹ˆė‹¤. mediumģ€ widthź°’ 650px, largeģ˜ 경우 widthź°’ 1024px, fullģ˜ 경우 width 1024px, height 56px딜 ė³€ź²½ė©ė‹ˆė‹¤.āŽ
titlestringAppBar ģ‚¬ģš©ģ‹œ ķ˜„ģž¬ ķŽ˜ģ“ģ§€ģ˜ ģ“ė¦„ģ„ ķ‘œģ‹œķ•©ė‹ˆė‹¤. sizeź°€ fullģ¼ė•Œ titleģ€ ź°€ģš“ė° ķ‘œģ‹œė©ė‹ˆė‹¤.āŽ
icon{iconName: iconsKey, func: ()=>void}AppBar ģ˜¤ė„øģŖ½ģ— ģœ„ģ¹˜ķ•  ģ•„ģ“ģ½˜ ė²„ķŠ¼ģž…ė‹ˆė‹¤. iconNameģ€ Icon ģ»“ķ¬ė„ŒķŠøģ˜ ģ†ģ„±(iconsKey)ģ„ ģž‘ģ„±ķ•©ė‹ˆė‹¤. funcģ€ ė²„ķŠ¼ ķ“ė¦­ģ‹œ ģž‘ė™ķ•  ķ•Øģˆ˜ė„¼ ģž‘ģ„±ķ•©ė‹ˆė‹¤.āŽ
text{textName: string, func: ()=>void}AppBar ģ˜¤ė„øģŖ½ģ— ģœ„ģ¹˜ķ•  ķ…ģŠ¤ķŠø ė²„ķŠ¼ģž…ė‹ˆė‹¤. TextNameģ€ ė²„ķŠ¼ģ˜ ģ“ė¦„ģ„ ź²°ģ •ķ•©ė‹ˆė‹¤. funcģ€ ė²„ķŠ¼ ķ“ė¦­ģ‹œ ģž‘ė™ķ•  ķ•Øģˆ˜ė„¼ ģž‘ģ„±ķ•©ė‹ˆė‹¤.āŽļø
counter{text: string, count: number, func: () => void }AppBar ģ˜¤ė„øģŖ½ģ— ģœ„ģ¹˜ķ•  ķ…ģŠ¤ķŠø ė²„ķŠ¼ģž…ė‹ˆė‹¤. Textģ€ ė²„ķŠ¼ģ˜ ģ“ė¦„ģ„ ź²°ģ •ķ•©ė‹ˆė‹¤. countėŠ” numberź°€ ė“¤ģ–“ź°‘ė‹ˆė‹¤. funcģ€ ė²„ķŠ¼ ķ“ė¦­ģ‹œ ģž‘ė™ķ•  ķ•Øģˆ˜ė„¼ ģž‘ģ„±ķ•©ė‹ˆė‹¤.āŽļø

Banner

ģ‚¬ģš©ģžź°€ ģ›ķ•˜ėŠ” 사진과 제목, ģ„¤ėŖ…ģ„ ė…øģ¶œķ•©ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { Banners } from 'gangstarr-point-styler';
...

  <Banners title='title' description='description' imageUrl='imageUrl' />

...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
titlestringģ œėŖ©ģ„ ė‚˜ķƒ€ėƒ„āŽ
descriptionstringģ„¤ėŖ…ģ„ ė‚˜ķƒ€ėƒ„āŽ
imageUrlstringģ“ėÆøģ§€ urlģ„ 통핓 ģ“ėÆøģ§€ė„¼ ė…øģ¶œķ•ØāŽ

Button

각 ģ†ģ„±ģ˜ 값에 ė”°ė¼ ģŠ¤ķƒ€ģ¼ė§ėœ ė²„ķŠ¼ģ„ ė…øģ¶œķ•©ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { Button } from 'gangstarr-point-styler';
...

  <Button size='large' fill='contained' mode='normal'>
	ė²„ķŠ¼
  </Button>

...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
childrenstringė²„ķŠ¼ģ— ķ‘œģ‹œė  ķ…ģŠ¤ķŠøšŸ…¾ļø
size'full' | 'xlarge' | 'large' | 'medium' | 'small' | 'xsmall'값에 ė”°ė¼ ė²„ķŠ¼ ģ‚¬ģ“ģ¦ˆź°€ ė³€ź²½šŸ…¾ļø
fill'contained' | 'outline'값에 ė”°ė¼ ģŠ¤ķƒ€ģ¼ ė³€ź²½šŸ…¾ļø
mode'normal' | 'enabled' | 'disabled'값에 ė”°ė¼ ģŠ¤ķƒ€ģ¼ ė³€ź²½šŸ…¾ļø

Button_FAB

ķŽ˜ģ“ģ§€ ķ•˜ė‹Øģ—ģ„œ ķŽ˜ģ“ģ§€ ģƒė‹Øģœ¼ė”œ ģ“ė™ķ•˜ź±°ė‚˜ ģ¶”ź°€ė²„ķŠ¼ģ„ ģ‚¬ģš©ķ•˜ėŠ” ė²„ķŠ¼ģž…ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

import { ButtonFab } from 'gangstarr-point-styler';
...
 <ButtonFab mode={'add'} func={()=>{console.log("큓릭")}} position={'center'}/>
...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
mode'add','up'추가 ė²„ķŠ¼ź³¼ ģƒė‹Øģ“ė™ ė²„ķŠ¼ģ˜ ėŖØģ–‘ģ„ ź²°ģ • ķ•©ė‹ˆė‹¤.šŸ…¾ļø
func()=>voidė²„ķŠ¼ ķ“ė¦­ģ‹œ ė™ģž‘ķ•  ķ•Øģˆ˜ė„¼ ģž‘ģ„±ķ•©ė‹ˆė‹¤.šŸ…¾ļø
position'left', 'center', 'right'ė²„ķŠ¼ ė…øģ¶œ ģœ„ģ¹˜ė„¼ ź²°ģ •ķ•©ė‹ˆė‹¤.šŸ…¾ļø

Card

CardCalendarData

ģ†ģ„± 값에 ė”°ė¼ ķšŒģ› 정볓와 ģ¼ģ • ė“±ģ„ ė…øģ¶œķ•©ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { CardCalendarData } from 'gangstarr-point-styler';
...

  <CardCalendarData
    period={'ģ“ė²ˆ 달'}
    name={'ė°•ķ™˜ģž'}
    totalSchedule={'100'}
    cancelSchedule={'100'}
    percent={'100'}
  />

...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
periodstringźø°ź°„ģ„ ė‚˜ķƒ€ėƒ„ (Ex ģ“ė²ˆ 달)āŽ
namestringķšŒģ›ģ˜ ģ“ė¦„ģ„ ė‚˜ķƒ€ėƒ„āŽ
totalSchedulestringģ“ ģ¼ģ •ģ„ ė‚˜ķƒ€ėƒ„āŽ
cancelSchedulestringģ·Øģ†Œķ•œ ģ¼ģ •ģ„ ė‚˜ķƒ€ėƒ„āŽ
percentstring | numberģ·Øģ†ŒģœØģ„ ė‚˜ķƒ€ėƒ„āŽ

CardLinkLarge

ģ¹“ė“œģ— ėŒ€ķ•œ ģ“ėÆøģ§€ģ™€ 제목, ģ„¤ėŖ…ģ„ ė…øģ¶œķ•©ė‹ˆė‹¤. ķ…ģŠ¤ķŠøź°€ 3줄 ģ“ģƒģ“ 되멓 말 ģ¤„ģž„ ķ‘œė„¼ ė…øģ¶œķ•©ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { CardLinkLarge } from 'gangstarr-point-styler';
...

  <CardLinkLarge
    imageUrl={'imageUrl'}
    title={'Title'}
    description={'Description'}
  />

...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
imageUrlstringģ“ėÆøģ§€ urlģ„ 통핓 ģ“ėÆøģ§€ė„¼ ė…øģ¶œķ•ØāŽ
titlestringģ œėŖ©ģ„ ė‚˜ķƒ€ėƒ„āŽ
descriptionstringģ„¤ėŖ…ģ„ ė‚˜ķƒ€ėƒ„āŽ

CardLinkMedium

ģ¹“ė“œģ— ėŒ€ķ•œ ģ“ėÆøģ§€ģ™€ ģ„¤ėŖ…ģ„ ė…øģ¶œķ•©ė‹ˆė‹¤. ģ„¤ėŖ…ģ“ ģ¼ģ • źø€ģž ģ“ģƒģ“ 되멓 말 ģ¤„ģž„ ķ‘œė„¼ ė…øģ¶œķ•©ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { CardLinkMedium } from 'gangstarr-point-styler';
...

  <CardLinkMedium
    imageUrl={'imageUrl'}
    description={'Description'}
    isDelete={false}
  />

...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
imageUrlstringģ“ėÆøģ§€ urlģ„ 통핓 ģ“ėÆøģ§€ė„¼ ė…øģ¶œķ•ØāŽ
descriptionstringģ„¤ėŖ…ģ„ ė‚˜ķƒ€ėƒ„āŽ
isDeletebooleanX ģ•„ģ“ģ½˜ģ˜ 유묓넼 ė‚˜ķƒ€ėƒ„āŽ

CardOption

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { CardOption } from 'gangstarr-point-styler';
...

  <CardOption
    title={'Title'}
    description={'Description'}
    isActive={false}
  />

...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
titlestringģ œėŖ©ģ„ ė‚˜ķƒ€ėƒ„āŽ
descriptionstringģ„¤ėŖ…ģ„ ė‚˜ķƒ€ėƒ„āŽ
isActivebooleanģ„ ķƒėœ ģ¹“ė“œģž„ģ„ ė‚˜ķƒ€ėƒ„āŽ

Dialog

ģ‚¬ģš©ģžģ—ź²Œ 정볓넼 ģ œź³µķ•˜ėŠ” Dialog ģ°½ģ„ ė…øģ¶œķ•©ė‹ˆė‹¤. ź²½ģš°ģ— ė”°ė¼ ķ™•ģø, ģ·Øģ†Œ ė²„ķŠ¼ģ˜ ģ‚¬ģš©ģ“ ź°€ėŠ„ķ•©ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { Dialog } from 'gangstarr-point-styler';
...

  const [isShow, setIsShow] = useState(false);

  ...

  <Dialog
    isShow={isShow}
    onHanndleShow={() => setIsShow(false)}
    title='Title'
    description='Description'
    grayButtonName='ģ·Øģ†Œ'
    onClickGrayButton={() => {
      return;
    }}
    primaryButtonName='ķ™•ģø'
    onClickPrimaryButton={() => {
      return;
    }}
  />

...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
isShowbooleanDialogģ˜ ė…øģ¶œģ—¬ė¶€ė„¼ ź²°ģ •šŸ…¾ļø
onHanndleShow() => voidDialogģ˜ Show, Hide넼 ģ„¤ģ •šŸ…¾ļø
titlestringDialogģ˜ ģ œėŖ©šŸ…¾ļø
grayButtonNamestringė²„ķŠ¼ģ˜ ģ“ė¦„šŸ…¾ļø
onClickGrayButton() => voidė²„ķŠ¼ģ„ ķ“ė¦­ķ–ˆģ„ ģ‹œ ė°œģƒķ•  ģ“ė²¤ķŠø ķ•Øģˆ˜šŸ…¾ļø
descriptionstringDialogģ˜ ģ„¤ėŖ…āŽ
primaryButtonNamestringė²„ķŠ¼ģ˜ ģ“ė¦„āŽ
onClickPrimaryButton() => voidė²„ķŠ¼ģ„ ķ“ė¦­ķ–ˆģ„ ģ‹œ ė°œģƒķ•  ģ“ė²¤ķŠø ķ•Øģˆ˜āŽ

Dropdown

DropdownTextfield

각 ģ†ģ„±ź°’ģ— ė”°ė¼ Select ė°•ģŠ¤ė„¼ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { DropdownTextfield } from 'gangstarr-point-styler';
...
  const menuList = [
    { id: 1, menu: 'List1' },
    { id: 2, menu: 'List2' },
    { id: 3, menu: 'List3' },
  ];

  <DropdownTextfield menuList={menuList} />
...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
menuListid:number, menu:string메뉓에 ė“¤ģ–“ź°ˆ 키넼 id딜, ė©”ė‰“ėŖ…ģ„ menu딜 ė°›ģ•„ģ˜µė‹ˆė‹¤.šŸ…¾ļø

DropdownSingle

각 ģ†ģ„±ź°’ģ— ė”°ė¼ Select ė°•ģŠ¤ė„¼ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤. Select ė°•ģŠ¤ģ˜ źøøģ“, ķ™œģ„±ķ™” 여부넼 ģ •ķ•©ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { DropdownSingle } from 'gangstarr-point-styler';
...
  const menuList = [
    { id: 1, menu: 'ģ›”' },
    { id: 2, menu: '주' },
    { id: 3, menu: 'ģ¼' },
  ];

  <DropdownSingle
    menuList={menuList}
    state='inactive'
    calendar={true}
  />
...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
menuListid:number, menu:string메뉓에 ė“¤ģ–“ź°ˆ 키넼 id딜, ė©”ė‰“ėŖ…ģ„ menu딜 ė°›ģ•„ģ˜µė‹ˆė‹¤.šŸ…¾ļø
statestringDropdownģ„ actived / inactive딜 ķ™œģ„±ķ™” / ė¹„ķ™œģ„±ķ™” ķ•©ė‹ˆė‹¤. Defaultź°’ģ€ activedģ“ė‹¤.āŽļø
calendarbooleanė©”ė‰“ģ˜ źøøģ“ė„¼ ģ›”/주/ģ¼ģ˜ 크기딜 ģ”°ģ •ķ•©ė‹ˆė‹¤.Default ź°’ģ€ falseģž…ė‹ˆė‹¤.āŽļø

DropdownDouble

각 ģ†ģ„±ź°’ģ— ė”°ė¼ Select ė°•ģŠ¤ė„¼ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { DropdownDouble } from 'gangstarr-point-styler';
...
  const menuList = [
    { id: 1, menu: 'List1' },
    { id: 2, menu: 'List2' },
    { id: 3, menu: 'List3' },
  ];

  <DropdownDouble menuList={menuList}/>
...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
menuListid:number, menu:string메뉓에 ė“¤ģ–“ź°ˆ 키넼 id딜, ė©”ė‰“ėŖ…ģ„ menu딜 ė°›ģ•„ģ˜µė‹ˆė‹¤.šŸ…¾ļø

Icon

ė‹¤ģ–‘ķ•œ ģ•„ģ“ģ½˜ģ„ ķ‘œķ˜„ķ•˜źø° ģœ„ķ•œ ģ»“ķ¬ė„ŒķŠøģž…ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

import { Icon } from 'gangstarr-point-styler';
...
<Icon name={'add'} />
...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
nameiconsKeynameģ„ string ķ˜•ģ‹ģœ¼ė”œ ģž‘ģ„±ķ•©ė‹ˆė‹¤. ' ' ģž‘ģ„±ģ‹œ ģŠ¤ė‹ˆķŽ«ģ„ ķ™•ģø ķ•  수 ģžˆģŠµė‹ˆė‹¤.šŸ…¾ļø

Item

ItemMember1

각 ģ†ģ„±ź°’ģ— ė”°ė¼ ķ…Œė‘ė¦¬, ģ“ė¦„, ķŠøė ˆģ“ė„ˆėŖ…, 성별, ė‚ ģ§œė„¼ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { ItemMember1 } from 'gangstarr-point-styler';
...
<ItemMember1
    fill='contained'
    name='ź¹€ģ•„ė¬“ź°œ'
    trainer='ķ™źøøė™'
    gender='남'
    date='2023-00-00'
/>
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
fillstringcontained/outlineģ„ ź°’ģœ¼ė”œ 가지며, ķ…Œė‘ė¦¬ 유묓넼 ģ„¤ģ •ķ•©ė‹ˆė‹¤.Defaultź°’ģ€ contianedģž…ė‹ˆė‹¤.āŽļø
namestringģ“ė¦„ģ„ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.āŽļø
trainerstringķŠøė ˆģ“ė„ˆėŖ…ģ„ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.āŽļø
genderstringģ„±ė³„ģ„ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.āŽļø
datestringė‚ ģ§œė„¼ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.āŽļø

ItemMember3

각 ģ†ģ„±ź°’ģ— ė”°ė¼ ķ…Œė‘ė¦¬, ģ“ė¦„, ģ—°ė½ģ²˜, ķŠøė ˆģ“ė„ˆėŖ…, ė‚ ģ§œė„¼ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { ItemMember3 } from 'gangstarr-point-styler';
...
<ItemMember3
    fill='contained'
    name='ź¹€ģ•„ė¬“ź°œ'
    phone='010-1234-5678'
    trainer='ķ™źøøė™'
    date='2023-00-00'
/>
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
fillstringcontained/outlineģ„ ź°’ģœ¼ė”œ 가지며, ķ…Œė‘ė¦¬ 유묓넼 ģ„¤ģ •ķ•©ė‹ˆė‹¤.Defaultź°’ģ€ contianedģž…ė‹ˆė‹¤.āŽļø
namestringģ“ė¦„ģ„ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.āŽļø
phonestringģ—°ė½ģ²˜ė„¼ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.āŽļø
trainerstringķŠøė ˆģ“ė„ˆėŖ…ģ„ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.āŽļø
datestringė‚ ģ§œė„¼ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.āŽļø

ItemStaff1

각 ģ†ģ„±ź°’ģ— ė”°ė¼ ķ…Œė‘ė¦¬, ģ“ė¦„, ģ—°ė½ģ²˜, 메모넼 ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { ItemStaff1 } from 'gangstarr-point-styler';
...
<ItemStaff1
    fill='contained'
    name='ź¹€ģ•„ė¬“ź°œ'
    phone='010-1234-5678'
    memo='메모 ė‚“ģš©ģ“ ķ‘œģ‹œė©ė‹ˆė‹¤.'
/>
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
fillstringcontained/outlineģ„ ź°’ģœ¼ė”œ 가지며, ķ…Œė‘ė¦¬ 유묓넼 ģ„¤ģ •ķ•©ė‹ˆė‹¤.Defaultź°’ģ€ contianedģž…ė‹ˆė‹¤.āŽļø
namestringģ“ė¦„ģ„ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.āŽļø
phonestringģ—°ė½ģ²˜ė„¼ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.āŽļø
memostring메모 ė‚“ģš©ģ“ ķ‘œģ‹œė˜ė©°, ģ¼ģ • ģ“ģƒ ė‚“ģš©ģ“ ė„˜ģ–“ź°€ė©“ ...으딜 ķ‘œźø°ė©ė‹ˆė‹¤.āŽļø

ItemRecord

각 ģ†ģ„±ź°’ģ— ė”°ė¼ ķ…Œė‘ė¦¬, ģ“ė¦„, ģ—°ė½ģ²˜, 메모넼 ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { ItemRecord } from 'gangstarr-point-styler';
...
<ItemRecord
    fill='contained'
    date='2023-00-00'
    memo='메모 ė‚“ģš©ģ“ ķ‘œģ‹œė©ė‹ˆė‹¤.'
    trainer='ķ™źøøė™'
/>
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
fillstringcontained/outlineģ„ ź°’ģœ¼ė”œ 가지며, ķ…Œė‘ė¦¬ 유묓넼 ģ„¤ģ •ķ•©ė‹ˆė‹¤.Defaultź°’ģ€ contianedģž…ė‹ˆė‹¤.āŽļø
datestringė‚ ģ§œė„¼ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.āŽļø
memostring메모 ė‚“ģš©ģ“ ķ‘œģ‹œė©ė‹ˆė‹¤.āŽļø

ItemTherapyCenter

각 ģ†ģ„±ź°’ģ— ė”°ė¼ ķ…Œė‘ė¦¬, ė‚ ģ§œ, ģ„¤ėŖ…ģ„ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { ItemTherapyCenter } from 'gangstarr-point-styler';
...
<ItemTherapyCenter
    fill='contained'
    date='2023-00-00'
    description='ģš“ė™ ģˆ˜ķ–‰ 영상'
/>
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
fillstringcontained/outlineģ„ ź°’ģœ¼ė”œ 가지며, ķ…Œė‘ė¦¬ 유묓넼 ģ„¤ģ •ķ•©ė‹ˆė‹¤.Defaultź°’ģ€ contianedģž…ė‹ˆė‹¤.āŽļø
datestringė‚ ģ§œė„¼ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.āŽļø
descriptionstringģˆ˜ķ–‰ģ˜ģƒģ„ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.āŽļø

ItemMessage

각 ģ†ģ„±ź°’ģ— ė”°ė¼ ķ…Œė‘ė¦¬, ģ•Œė¦¼ė©”ģ‹œģ§€, ė‚ ģ§œė„¼ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { ItemMessage } from 'gangstarr-point-styler';
...
<ItemMessage
    fill='contained'
    memo='ė©”ėŖØķ•œ ė‚“ģš©ģ“ ė‚˜ķƒ€ė‚©ė‹ˆė‹¤'
    date='2023-00-00'
/>
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
fillstringcontained/outlineģ„ ź°’ģœ¼ė”œ 가지며, ķ…Œė‘ė¦¬ 유묓넼 ģ„¤ģ •ķ•©ė‹ˆė‹¤.Defaultź°’ģ€ contianedģž…ė‹ˆė‹¤.āŽļø
memostring메모 ė‚“ģš©ģ“ ķ‘œģ‹œė©ė‹ˆė‹¤.āŽļø
datestringė‚ ģ§œė„¼ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤.āŽļø

Label

각 ģ†ģ„±ģ˜ 값에 ė”°ė¼ ģŠ¤ķƒ€ģ¼ė§ėœ ė¼ė²Øģ„ ė…øģ¶œķ•©ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { Label } from 'gangstarr-point-styler';
...

  <Label shape='rectangle' background='blue' color='green'>
    ģ œė‹ˆėŠ” ź°±ģŠ¤ķƒ€
  </Label>

...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
childrenstringė¼ė²Øģ— ķ‘œģ‹œė  ķ…ģŠ¤ķŠøšŸ…¾ļø
shape'rectangle' | 'round'값에 ė”°ė¼ ė¼ė²Ø ėŖØģ–‘ģ“ ė³€ź²½ėØāŽ
background'blue' | 'gray' | 'green'값에 ė”°ė¼ ė¼ė²Øģ˜ ė°°ź²½ģƒ‰ģ“ ė³€ź²½ėØāŽ
color'blue500' | 'blue300' | 'gray' | 'red' | 'green'값에 ė”°ė¼ ė¼ė²Øģ˜ ķ…ģŠ¤ķŠø ģƒ‰ģƒģ“ ė³€ź²½ėØāŽ

Navigation

TopNavigation

ķ†µģ¦ ꓀리 ģ‹œģŠ¤ķ…œ ģƒė‹Øģ—ģ„œ ķŽ˜ģ“ģ§€ ģ“ė™ģ„ ė‹“ė‹¹ķ•˜ėŠ” NavigationBar ģž…ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

import { TopNavigationBar } from 'gangstarr-point-styler';
...
 <TopNavigationBar
        tapMenuLists={[
          { tapName: 'ģˆ˜ź°•ź“€ė¦¬', path: 'about' },
          { tapName: 'ģˆ˜ź°•ź“€ė¦¬2', path: 'about2' },
          { tapName: 'ģˆ˜ź°•ź“€ė¦¬3', path: 'about3' },
          { tapName: 'ģˆ˜ź°•ź“€ė¦¬4', path: 'about4' },
          { tapName: 'ģˆ˜ź°•ź“€ė¦¬5', path: 'about5' },
        ]}
        userData={{ name: 'ģµœė™ķ™˜', label: 'ķ”Œėžœģ“ģš©ģ¤‘' }}
      />
...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
tapMenuLists{ tapName: string, path: string }TopNavigationBarģ˜ 탭 ė²„ķŠ¼ģ„ ė‹“ė‹¹ķ•©ė‹ˆė‹¤.āŽ
userData{name: string, label: string}ė”œź·øģøģ‹œ ė³“ģ—¬ģ§ˆ ģœ ģ € ė°ģ“ķ„°ģž…ė‹ˆė‹¤.āŽ

BotNavigation

ķ†µģ¦ ꓀리 ģ‹œģŠ¤ķ…œ ķ•˜ė‹Øģ—ģ„œ ķŽ˜ģ“ģ§€ ģ“ė™ģ„ ė‹“ė‹¹ķ•˜ėŠ” NavigationBar ģž…ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

import { BotNavigationBar } from 'gangstarr-point-styler';
...
<BottomNavigationBar
        tabNameLists={{
          home: 'home',
          reservation: 'reservation',
          patient: 'patient',
          center: 'center',
          mypage: 'mypage',
        }}
        onClickHome={() => navigate('/home')}
        onClickReservation={() => navigate('/reserve')}
        onClickPatient={() => navigate('/partiend')}
        onClickCenter={() => navigate('/center')}
        onClickMypage={() => navigate('/mypage')}
      />
...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
tabNameListshome: string, reservation: string, patient: string, center: string, mypage: stringBotNavigationBarģ˜ 탭 메뉓넼 ė‹“ė‹¹ķ•©ė‹ˆė‹¤.šŸ…¾ļø
onClickHome() => voidė²„ķŠ¼ ķ“ė¦­ģ‹œ ė™ģž‘ķ•  ķ•Øģˆ˜ė„¼ ģž‘ģ„±ķ•©ė‹ˆė‹¤.šŸ…¾ļø
onClickReservation() => voidė²„ķŠ¼ ķ“ė¦­ģ‹œ ė™ģž‘ķ•  ķ•Øģˆ˜ė„¼ ģž‘ģ„±ķ•©ė‹ˆė‹¤.šŸ…¾ļø
onClickPatient() => voidė²„ķŠ¼ ķ“ė¦­ģ‹œ ė™ģž‘ķ•  ķ•Øģˆ˜ė„¼ ģž‘ģ„±ķ•©ė‹ˆė‹¤.šŸ…¾ļø
onClickCenter() => voidė²„ķŠ¼ ķ“ė¦­ģ‹œ ė™ģž‘ķ•  ķ•Øģˆ˜ė„¼ ģž‘ģ„±ķ•©ė‹ˆė‹¤.šŸ…¾ļø
onClickMypage() => voidė²„ķŠ¼ ķ“ė¦­ģ‹œ ė™ģž‘ķ•  ķ•Øģˆ˜ė„¼ ģž‘ģ„±ķ•©ė‹ˆė‹¤.šŸ…¾ļø

Picker

DatePicker

ė‹¬ė „ģ„ ė…øģ¶œķ•˜ź³  ģ‚¬ģš©ģžė”œ ķ•˜ģ—¬źøˆ ģ„ ķƒėœ ė‚ ģ§œė„¼ YYYY.M.D ķ˜•ģ‹ģœ¼ė”œ ģ €ģž„ķ•©ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { DatePicker } from 'gangstarr-point-style';
...

  const [isSelectedDate, setIsSelectDate] = useState<string>('');
  const [isShow, setIsShow] = useState<boolean>(false);

  ...

    <Button onClick={() => setIsShow(true)}>ģ—“źø°</Button>
    <>
      {isShow && (
        <DatePicker
          size='large'
          prevSelected={isSelectedDate}
          onClickConfirm={setIsSelectDate}
          onClosePicker={() => setIsShow(false)}
        />
      )}
    </>

...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
size'small' | 'large'DatePickerģ˜ ģ‚¬ģ“ģ¦ˆė„¼ ź²°ģ •ķ•ØāŽ
prevSelectedstringģ“ģ „ģ— ģ„ ķƒėœ ź°’ ķ˜•ģ‹ģ— ė§žź²Œ ģžˆė‹¤ė©“ DatePicker에 ķ‘œģ‹œķ•ØāŽ
onClickConfirmDispatch<SetStateAction<string>>YYYY.M.D ķ˜•ģ‹ģœ¼ė”œ ģ €ģž„ķ•Ø useStateģ˜ setState ķ•Øģˆ˜ģž„šŸ…¾ļø
onClosePicker() => voidPicker넼 ė‹«ėŠ” ķ•Øģˆ˜ģž„šŸ…¾ļø

TimePicker

ėŖØė°”ģ¼ ģŠ¤ķƒ€ģ¼ģ˜ TimePicker넼 ė…øģ¶œķ•˜ź³ , ģ‚¬ģš©ģžė”œ ķ•˜ģ—¬źøˆ ģ„ ķƒėœ ģ‹œź°„ģ„ {hour: number, minute: number} ķ˜•ģ‹ģœ¼ė”œ ģ €ģž„ķ•©ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { TimePicker } from 'gangstarr-point-style';
...

  const [selectTime, setSelectTime] = useState<IselectedTimeTypes | undefined>();
  const [isShow, setIsShow] = useState(false);

  ...

    <button onClick={() => setIsShow(true)}>ģ—“źø°</button>
    <>
      {isShow && (
        <TimePicker
          prevSelectedTime={selectTime}
          onClickConfirm={setSelectTime}
          onClosePicker={() => setIsShow(false)}
        />
      )}
    </>

...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
onClickConfirmDispatch<SetStateAction<IselectedTimeTypes | undefined>>{hour: number, minute: number} ķ˜•ģ‹ģœ¼ė”œ ģ €ģž„ķ•Ø useStateģ˜ setState ķ•Øģˆ˜ģž„šŸ…¾ļø
onClosePicker() => voidPicker넼 ė‹«ėŠ” ķ•Øģˆ˜ģž„šŸ…¾ļø
prevSelectedTimeIselectedTimeTypes | undefined전에 ģ„ ķƒėœ ź°’ ķ˜•ģ‹ģ— ė§žź²Œ ģžˆė‹¤ė©“ TimePicker에 ķ‘œģ‹œķ•ØāŽ

PopupMenu

ķ†µģ¦ ꓀리 ģ‹œģŠ¤ķ…œ ģ“ģš©ģ¤‘ ė³“ģ—¬ģ§ˆ PopupMenu ģž…ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import PopupMenu from 'gangstarr-point-styler';
...
const menuName = [
  {
    id: 1,
    menu: '메뉓1',
    link: 'link1',
  },
  {
    id: 2,
    menu: '메뉓메뉓메뉓메뉓메뉓메뉓메뉓',
    link: 'link2',
  },
  {
    id: 3,
    menu: '메뉓3',
    link: 'link3',
  },
];

const [isVisible, setIsVisible] = useState(false);

const handlePopup = () => {
  return setIsVisible(true);
};
...
<Button onClick={handlePopup}>ķŒģ—… 토글</Button>
<>
    {isVisible && (
      <PopupMenu
        menuLists={menuName}
        isVisible={isVisible}
        onClosePopup={() => setIsVisible(false)}
      />
    )}
</>
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
menuListsid : numbermenu : stringlink : stringid, menu, link넼 ė°°ģ—“ė”œ 받아와 ķŒģ—…ė©”ė‰“ģ˜ key, 메뉓명, urlģ„ ė°›ģ•„ģ˜µė‹ˆė‹¤.āŽļø
isVisibleisVisible(boolean)ķŒģ—… 메뉓넼 ė³“ģ—¬ģ£¼ėŠ” ģƒķƒœź°’ģ„ ė°›ģ•„ģ˜µė‹ˆė‹¤.āŽļø
onClosePopup() => setIsVisible(false)useStateź°’ģ„ ė³€ź²½ķ•“ģ£¼ėŠ” ķ•Øģˆ˜ė„¼ ė°›ģ•„ģ˜µė‹ˆė‹¤.āŽļø

Tabs

ģµœėŒ€ 10ź°œģ˜ Tabs넼 ė…øģ¶œķ•©ė‹ˆė‹¤. tabListsģ˜ ģš”ģ†Œź°€ 10개넼 ģ“ˆź³¼ķ•œė‹¤ė©“ 0 ~ 9번 ģøė±ģŠ¤ģ˜ ģš”ģ†Œė„¼ ė…øģ¶œķ•©ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { Tabs } from 'gangstarr-point-style';
...

  const tabLists = [
    { path: 'tab1', name: 'tab1', callback: () => { setCurrentTab('tab1') } },
    { path: 'tab2', name: 'tab2', callback: () => { setCurrentTab('tab2') } },
    { path: 'tab3', name: 'tab3', callback: () => { setCurrentTab('tab3') }  },
    { path: 'tab4', name: 'tab4', callback: () => { setCurrentTab('tab4') }  },
    { path: 'tab5', name: 'tab5', callback: () => { setCurrentTab('tab5') }  },
  ];
  const [currentTab, setCurrentTab] = useState('tab1');

  ...

    <Tabs tabLists={tabLists} currentTab={currentTab} />

  ...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
tabLists{ path: string; name: string; callback: () => void }[]path, name, callback ķ•Øģˆ˜ė„¼ ķ¬ķ•Øķ•œ ė°°ģ—“ķ˜•ķƒœģ˜ ģš”ģ†ŒšŸ…¾ļø
currentTabstringķ˜„ģž¬ ģ„ ķƒėœ ķƒ­ģ˜ path넼 ėœ»ķ•©ė‹ˆė‹¤.šŸ…¾ļø

TextField

ģ‚¬ģš©ģžė”œė¶€ķ„° ģž…ė „ģ„ ė°›ģ„ 수 ģžˆėŠ” input ģ»“ķ¬ė„ŒķŠøģž…ė‹ˆė‹¤. ķ•„ģš”ģ— ė”°ė¼ ģž…ė „ė°›ģ€ 값에 ėŒ€ķ•“ validationģ„ 핓줄 수 ģžˆģŠµė‹ˆė‹¤. 그리고 validation 결과에 따넸 메세지넼 볓여줄 ģˆ˜ė„ ģžˆģŠµė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { TextField } from 'gangstarr-point-style';
...

  const [inputValue, setInputValue] = useState('');
  const [isError, setIsError] = useState(false);

  {/* ģœ ķšØģ„± ź²€ģ¦ ķ•Øģˆ˜*/}
  const onChangeInput = (e: React.ChangeEvent<HTMLInputElement>) => {
    setInputValue(e.target.value);
    if (e.target.value.length < 5) setIsError(true);  {/* ģœ ķšØģ„± ź²€ģ¦ 씰걓*/}
    else setIsError(false);
  };

  ...

    <TextField
      id='textfield'
      title='ķƒ€ģ“ķ‹€'
      placeholder={'ź°’ģ„ ģž…ė „ķ•“ģ£¼ģ„øģš”.'}
      onChange={onChangeInput}
      value={inputValue}
      validate={true}
      isError={isError}
      customErrorMessage='ģ—ėŸ¬ ė©”ģ‹œģ§€'
      customSuccessMessage='성공 ė©”ģ‹œģ§€'
      customInactiveMessage='ģøģ•”ķ‹°ėøŒ ė©”ģ‹œģ§€'
    />

    ...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
state'inactive' | 'focused' | 'error' | 'positive' | 'activated' | 'disable'Textfield ģ»“ķ¬ė„ŒķŠøģ˜ 상태넼 ė‚˜ķƒ€ėƒ„āŽ
idstringlabelģ˜ htmlFor와 ģ—°ź²°ķ•  id넼 ģ˜ėÆøķ•ØāŽ
titlestringlabel에 ė‚˜ķƒ€ė‚¼ ķ…ģŠ¤ķŠøāŽ
validatebooleanģœ ķšØģ„± ź²€ģ¦ 여부 (ģœ ķšØģ„± ź²€ģ¦ģ“ ķ•„ģš”ķ•˜ė‹¤ė©“ ģœ ķšØģ„±ģ„ ź²€ģ¦ķ•“ģ£¼ėŠ” ķ•Øģˆ˜ė„¼ ģž‘ģ„±ķ•“ģ„œ ģ‚¬ģš©)āŽ
isErrorbooleanģœ ķšØģ„± ź²€ģ¦ģ„ 핓야 ķ•  ė•Œ, ź²€ģ¦ 결과에 ė”°ė¼ģ„œ ģŠ¤ķƒ€ģ¼ė§ģ„ ė‹¤ė„“ź²Œ 핓야 ķ•˜ėÆ€ė”œ isError넼 통핓 상태넼 ꓀리함.āŽ
customErrorMessagestringģœ ķšØģ„± ź²€ģ¦ģ— ķ†µź³¼ķ•˜ģ§€ ėŖ»ķ–ˆģ„ ė•Œ 볓여줄 ė©”ģ„øģ§€šŸ…¾ļø
customSuccessMessagestringģœ ķšØģ„± ź²€ģ¦ģ— ķ†µź³¼ķ–ˆģ„ ė•Œ 볓여줄 ė©”ģ„øģ§€šŸ…¾ļø
customInactiveMessagestringģœ ķšØģ„± ź²€ģ¦ģ„ 핓야 ķ•˜ź³ , ģ‚¬ģš©ģžģ˜ ģž…ė „ģ“ 아직 ģ—†ģ„ ė•Œ 볓여줄 ė©”ģ„øģ§€šŸ…¾ļø

Thumbnails

ė¹„ė””ģ˜¤ ė˜ėŠ” ģ“ėÆøģ§€ģ˜ ģøė„¤ģ¼ģ„ ė³“ģ—¬ģ£¼ėŠ” ģ»“ķ¬ė„ŒķŠøģž…ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

...
import { Thumbnails } from 'gangstarr-point-styler';
...

  <Thumbnails
    src={ģ“ėÆøģ§€ ģ£¼ģ†Œ}
    type='image'
    runningTime='12:30'
    state='delete'
    />

...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
state'error' | 'play' | 'select' | 'delete' | 'normal'ģƒķƒœź°’ģ— ė”°ė¼ ģŠ¤ķƒ€ģ¼ė§ģ“ ė‹¤ė„“ź²Œ ģ ģš©ėØāŽ
type'video' | 'image'ė™ģ˜ģƒ ė˜ėŠ” ģ“ėÆøģ§€ģ˜ ģøė„¤ģ¼ģ„ ė§Œė“¤ 수 ģžˆģŒāŽ
runningTimestringvideo ķƒ€ģž…ģ˜ 경우, ė™ģ˜ģƒģ˜ runningTimeģ„ ģž…ė „ķ•˜ģ—¬ ģøė„¤ģ¼ģ— 볓여줄 수 ģžˆģŒāŽ
srcstringģ“ėÆøģ§€ ģ£¼ģ†ŒāŽ

Typography

ģƒķ™©ģ— ė”°ė¼ ģ‚¬ģš©ķ•˜ź³  ģ‹¶ģ€ ķƒ€ģ“ķ¬ ķ…œķ”Œė¦æģ„ ź°€ģ øģ˜µė‹ˆė‹¤. font-familyėŠ” ķ•œźø€ģ€ Pretendard, ģ˜ģ–“ėŠ” Roboto넼 źø°ģ¤€ģœ¼ė”œ ģž‘ģ„±ė˜ģ—ˆģŠµė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ

<Headline>ķ—¤ė“œė¼ģø</Headline>
<Title1>ķƒ€ģ“ķ‹€1</Title1>
<Title2>ķƒ€ģ“ķ‹€2</Title2>
<Title3>ķƒ€ģ“ķ‹€3</Title3>
<Title4>ķƒ€ģ“ķ‹€4</Title4>
<Title5>ķƒ€ģ“ķ‹€5</Title5>
<Title6>ķƒ€ģ“ķ‹€6</Title6>
<Body1>바디1</Body1>
<Body2>바디2</Body2>
<Body3>바디3</Body3>
<Body4>바디4</Body4>
<Caption1>ģŗ”ģ…˜1</Caption1>
<Caption2>ģŗ”ģ…˜2</Caption2>

SnackBar

ķ†µģ¦ ꓀리 ģ‹œģŠ¤ķ…œ ģ“ģš©ģ¤‘ ė³“ģ—¬ģ§ˆ SnackBar ģž…ė‹ˆė‹¤.

ģ˜ˆģ‹œ ģ½”ė“œ ģ˜¬ė°”ė„ø ģ‚¬ģš©ģ„ ģœ„ķ•“ ė°˜ė“œģ‹œ ģ•„ėž˜ģ˜ ķ˜•ķƒœė”œ ģž‘ģ„±ķ•“ģ£¼ģ‹œźø° ė°”ėžė‹ˆė‹¤.

import { SnackBar } from 'gangstarr-point-styler';
...
 const [snackbarMessage, setSnackbarMessage] = useState('');
...
<>
    {snackbarMessage && (
      <SnackBar
        description={snackbarMessage}
        time={3000}
        setSnackbarMessage={setSnackbarMessage}></SnackBar>
    )}
</>
...
ģ†ģ„±ź°’ģ„¤ėŖ…ķ•„ģˆ˜ģ—¬ė¶€
descriptionstringSnackBar딜 볓여줄 각종 메세지 ģž…ė‹ˆė‹¤.šŸ…¾ļø
timenumberSnackBarź°€ ė…øģ¶œ ė˜ėŠ” ģ‹œź°„ģž…ė‹ˆė‹¤. ms źø°ģ¤€ģœ¼ė”œ ģ „ė‹¬ķ•©ė‹ˆė‹¤.šŸ…¾ļø
setSnackbarMessage(message: string) => voidSnackBar넼 ģž‘ė™ķ•˜źø° ģœ„ķ•œ 트리거 ģž…ė‹ˆė‹¤.šŸ…¾ļø
usedAppBarbooleanBotNavigation ģœ ė¬“ģ— ė”°ė¼ ė‚˜ķƒ€ė‚˜ėŠ” ģœ„ģ¹˜ė„¼ ź²°ģ •ķ•©ė‹ˆė‹¤.āŽ
widthSizenumberSnackBarģ˜ ģ‚¬ģ“ģ¦ˆė„¼ ź²°ģ •ķ•©ė‹ˆė‹¤.āŽ

Demo

ė°ėŖØģ‚¬ģ“ķŠø

1.0.1

2 years ago

1.0.0

2 years ago

0.1.0

2 years ago

0.0.9

2 years ago

0.0.8

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago