npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

woowacourse-todari-components

v1.0.6

Published

우아한테크코스 페이먼츠 모듈 미션

Downloads

18

Readme

woowacourse-todari-components

Install

npm i woowacourse-todari-components

Storybook

click here for check storybook page

API

Top-Level Exports

  • <Button>
  • <CustomModal>
  • <AlertModal>
  • <ConfirmModal>
  • <PromptModal>

<Button>

Usage

Add the <Button> component near the top of your application's tree.

import { Button } from 'woowacourse-todari-components';

const App = () => {
  return (
    <Button
      text="button"
      onClick={() => alert('clicked')}
      size="medium"
      width="full"
      buttonStyle="primary"
      primaryColor="#1C77C1"
    />
  );
};

props

| props | type | description | | ------------------------- | ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | size (optional) | ButtonSize (medium : default, large,small ) | Specifies the size of the button. Choices are "small", "medium" (default), or "large", affecting the button’s padding and font size. | | width (optional) | ButtonWidth (fixed: default, full, fit) | Determines the width setting for the button's CSS. "fixed" maintains a constant width, "fit" adjusts to the text size, and "full" expands to the full width of its container. | | buttonStyle (optional) | ButtonStyle(primary: default, border, text) | Specifies the style of the button. "primary" for a solid fill, "border" for a bordered style without fill, and "text" for a flat style without border or background. | | primaryColor (optional) | string (#333333 : default) | Sets the primary color of the button, used for the background in "primary" style, and the text and border in "border" and "text" styles. | | disabled (optional) | string (#333333 : default) | Specifies whether the button is disabled. When true, the button becomes unclickable and is usually styled to indicate it is inactive. | | text | string | The text displayed on the button. This is the primary content of the button and should clearly communicate its action. | | onClick | Function | The function that is called when the button is clicked. This handler is triggered on user interaction with the button. |

<CustomModal>

Usage

Add the <CustomModal> component near the top of your application's tree.

import { CustomModal } from 'woowacourse-todari-components';

const App = () => {
  const [modalOpened, setModalOpened] = useState(false);

  const handleModalOpen = () => {
    setModalOpened(true);
  };

  const handleModalClose = () => {
    setModalOpened(false);
  };

  return (
    <>
      <Button
        text="open modal"
        onClick={handleModalOpen}
        size="large"
        width="full"
        buttonStyle="primary"
        primaryColor="#1C77C1"
      />
      <CustomModal
        isOpened={modalOpened}
        onClose={handleModalClose}
        title="Todal Modal"
        description="This is for woowacourse mission"
        modalPosition="bottom"
        primaryButton={{
          text: 'DO SOMETHING!',
          onClick: () => {},
          size: 'medium',
          width: 'full',
        }}
        secondaryButton={{
          text: 'Cancel',
          onClick: handleModalClose,
          size: 'medium',
          width: 'fit',
        }}
        buttonPosition="row"
        showCloseButton={false}
      >
        <div
          style={{
            backgroundColor: '#dddddd',
            padding: '8px',
            height: '50vh',
          }}
        >
          Children Area
        </div>
      </CustomModal>
    </>
  );
};

props

| props | type | description | | ---------------------------- | ------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | isOpened | boolean | Controls whether the modal is visible. Set to true to show the modal and false to hide it. | | size (optional) | ButtonSize (medium : default, large,small ) | Specifies the size of the modal. Options include "small", "medium" (default), and "large". | | showCloseButton (optional) | boolean (false : default) | Determines if a close button is displayed on the modal. Set to true to display the button. | | modalPosition (optional) | ModalPosition(center : default, bottom) | Sets the position of the modal on the screen. Options are "center" (default) or "bottom". | | buttonPosition (optional) | ButtonPosition(row : default, column) | Defines the layout of the buttons within the modal.Options are "row" for horizontal arrangement or "column" for vertical arrangement. | | primaryColor (optional) | string (#333333 : default) | Sets the primary color of the modal, influencing the header, footer, and primary buttons. | | onClose | Function | Function to be called when the modal is requested to be closed, such as clicking on a close button. | | title (optional) | string | The title text to display at the top of the modal. | | description (optional) | string | A brief description or content text that appears inside the modal. | | children (optional) | JSX.Element | Custom content to be displayed in the modal, allowing for flexible modal content configuration. | | primaryButton (optional) | {text:string, style:ButtonStyle } | Configuration for the primary action button within the modal. This includes text, click behavior, and styling options such as size, width, and button style.Use this to define the main actionable button in the modal. | | secondaryButton (optional) | {text:string, style:ButtonStyle } | Configuration for the secondary action button within the modal. This button typically handles less critical actions. Configure its text, click behavior, and appearance similar to the primary button. |

<AlertModal>

Usage

Add the <AlertModal> component near the top of your application's tree.

import { AlertModal } from 'woowacourse-todari-components';

const App = () => {
  const [modalOpened, setModalOpened] = useState(false);

  const handleModalOpen = () => {
    setModalOpened(true);
  };

  const handleModalClose = () => {
    setModalOpened(false);
  };

  return (
    <>
      <Button
        text="open modal"
        onClick={handleModalOpen}
        size="large"
        width="full"
        buttonStyle="primary"
        primaryColor="#1C77C1"
      />
      <AlertModal
        isOpened={modalOpened}
        onClose={handleModalClose}
        title="Todal Modal"
        description="This is for woowacourse mission"
        showCloseButton={false}
      />
    </>
  );
};

props

| props | type | description | | ---------------------------- | ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | | isOpened | boolean | Controls whether the modal is visible. Set to true to show the modal and false to hide it. | | size (optional) | ButtonSize (medium : default, large,small ) | Specifies the size of the modal. Options include "small", "medium" (default), and "large". | | showCloseButton (optional) | boolean (false : default) | Determines if a close button is displayed on the modal. Set to true to display the button. | | modalPosition (optional) | ModalPosition(center : default, bottom) | Sets the position of the modal on the screen. Options are "center" (default) or "bottom". | | buttonPosition (optional) | ButtonPosition(row : default, column) | Defines the layout of the buttons within the modal.Options are "row" for horizontal arrangement or "column" for vertical arrangement. | | primaryColor (optional) | string (#333333 : default) | Sets the primary color of the modal, influencing the header, footer, and primary buttons. | | onClose | Function | Function to be called when the modal is requested to be closed, such as clicking on a close button. | | onConfirm | Function | Function to be called when the confirm action is triggered, typically via a confirm button.button. | | title (optional) | string | The title text to display at the top of the modal. | | description (optional) | string | A brief description or content text that appears inside the modal. | | children (optional) | JSX.Element | Custom content to be displayed in the modal, allowing for flexible modal content configuration. |

<ConfirmModal>

Usage

Add the <ConfirmModal> component near the top of your application's tree.

import { ConfirmModal } from 'woowacourse-todari-components';

const App = () => {
  const [modalOpened, setModalOpened] = useState(false);

  const handleModalOpen = () => {
    setModalOpened(true);
  };

  const handleModalClose = () => {
    setModalOpened(false);
  };

  return (
    <>
      <Button
        text="open modal"
        onClick={handleModalOpen}
        size="large"
        width="full"
        buttonStyle="primary"
        primaryColor="#1C77C1"
      />
      <ConfirmModal
        isOpened={modalOpened}
        onClose={handleModalClose}
        onConfirm={() => alert('confirmed!')}
        title="Todal Modal"
        description="This is for woowacourse mission"
        showCloseButton={false}
      />
    </>
  );
};

props

| props | type | description | | ---------------------------- | ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | | isOpened | boolean | Controls whether the modal is visible. Set to true to show the modal and false to hide it. | | size (optional) | ButtonSize (medium : default, large,small ) | Specifies the size of the modal. Options include "small", "medium" (default), and "large". | | showCloseButton (optional) | boolean (false : default) | Determines if a close button is displayed on the modal. Set to true to display the button. | | modalPosition (optional) | ModalPosition(center : default, bottom) | Sets the position of the modal on the screen. Options are "center" (default) or "bottom". | | buttonPosition (optional) | ButtonPosition(row : default, column) | Defines the layout of the buttons within the modal.Options are "row" for horizontal arrangement or "column" for vertical arrangement. | | primaryColor (optional) | string (#333333 : default) | Sets the primary color of the modal, influencing the header, footer, and primary buttons. | | onClose | Function | Function to be called when the modal is requested to be closed, such as clicking on a close button. | | onConfirm | Function | Function to be called when the confirm action is triggered, typically via a confirm button.button. | | title (optional) | string | The title text to display at the top of the modal. | | description (optional) | string | A brief description or content text that appears inside the modal. | | children (optional) | JSX.Element | Custom content to be displayed in the modal, allowing for flexible modal content configuration. |

<PromptModal>

Usage

Add the <PromptModal> component near the top of your application's tree.

import { PromptModal } from 'woowacourse-todari-components';

const App = () => {
  const [modalOpened, setModalOpened] = useState(false);

  const handleModalOpen = () => {
    setModalOpened(true);
  };

  const handleModalClose = () => {
    setModalOpened(false);
  };

  return (
    <>
      <Button
        text="open modal"
        onClick={handleModalOpen}
        size="large"
        width="full"
        buttonStyle="primary"
        primaryColor="#1C77C1"
      />
      <PromptModal
        isOpened={modalOpened}
        onClose={handleModalClose}
        onConfirm={(value) => alert(`your email is '${value}'`)}
        title="Email"
        description="write your email"
        showCloseButton={false}
        validateOnChange={(value) => {
          if (/^[a-zA-Z0-9@.]+$/.test(value)) {
            return { isValid: true, errorMessage: '' };
          }

          return { isValid: false, errorMessage: 'invalid input' };
        }}
        validateOnBlur={(value) => {
          if (/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/.test(value)) {
            return { isValid: true, errorMessage: '' };
          }

          return { isValid: false, errorMessage: 'invalid email' };
        }}
      />
    </>
  );
};

props

| props | type | description | | ---------------------------- | ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | isOpened | boolean | Controls whether the modal is visible. Set to true to show the modal and false to hide it. | | size (optional) | ButtonSize (medium : default, large,small ) | Specifies the size of the modal. Options include "small", "medium" (default), and "large". | | showCloseButton (optional) | boolean (false : default) | Determines if a close button is displayed on the modal. Set to true to display the button. | | modalPosition (optional) | ModalPosition(center : default, bottom) | Sets the position of the modal on the screen. Options are "center" (default) or "bottom". | | buttonPosition (optional) | ButtonPosition(row : default, column) | Defines the layout of the buttons within the modal.Options are "row" for horizontal arrangement or "column" for vertical arrangement. | | primaryColor (optional) | string (#333333 : default) | Sets the primary color of the modal, influencing the header, footer, and primary buttons. | | onClose | Function | Function to be called when the modal is requested to be closed, such as clicking on a close button. | | onConfirm | Function | Function to be called when the confirm action is triggered, typically via a confirm button.button. | | title (optional) | string | The title text to display at the top of the modal. | | description (optional) | string | A brief description or content text that appears inside the modal. | | initialValue (optional) | string | The initial value to populate in the input field within the modal. This is useful for starting the modal with predefined content. | | validateOnChange | Function | A function that validates the input field’s content in real-time as the user types. It should return an object with isValid boolean and errorMessage string. Options include validation for numeric input ("onlyNumber"), alphabetic input ("onlyEnglish"), or no validation ("none"). | | validateOnCBlur | Function | A function that validates the input field’s content when the field loses focus. It should ensure the input meets certain criteria before the form can be submitted, like having exactly 10 characters ("matchLength10") or no validation ("none"). | | children (optional) | JSX.Element | Custom content to be displayed in the modal, allowing for flexible modal content configuration. |