Skip to content

Notice

Basic usage

tsx
import React from 'react';
import Notice from 'intergalactic/notice';
import CloseAltM from 'intergalactic/icon/Close/m';
import ThumbUpM from 'intergalactic/icon/ThumbUp/m';
import ThumbDownM from 'intergalactic/icon/ThumbDown/m';
import Question from 'intergalactic/icon/Question/m';
import Button from 'intergalactic/button';
import { Text } from 'intergalactic/typography';

const Demo = () => (
  <Notice>
    <Notice.Label mt={1} mr={2} aria-hidden={true}>
      <Question />
    </Notice.Label>
    <Notice.Content style={{ display: 'flex', alignItems: 'center' }}>
      <Text mr={2}>Meet our SEO Dashboard! Is it working well for you?</Text>
      <Notice.Actions mt={0}>
        <Button mr={2}>
          <Button.Addon>
            <ThumbUpM />
          </Button.Addon>
          <Button.Text>Yes</Button.Text>
        </Button>
        <Button mr={2}>
          <Button.Addon>
            <ThumbDownM />
          </Button.Addon>
          <Button.Text>No</Button.Text>
        </Button>
        <Button use='tertiary'>Ask me later</Button>
      </Notice.Actions>
    </Notice.Content>
    <Notice.CloseIcon>
      <CloseAltM />
    </Notice.CloseIcon>
  </Notice>
);

export default Demo;
import React from 'react';
import Notice from 'intergalactic/notice';
import CloseAltM from 'intergalactic/icon/Close/m';
import ThumbUpM from 'intergalactic/icon/ThumbUp/m';
import ThumbDownM from 'intergalactic/icon/ThumbDown/m';
import Question from 'intergalactic/icon/Question/m';
import Button from 'intergalactic/button';
import { Text } from 'intergalactic/typography';

const Demo = () => (
  <Notice>
    <Notice.Label mt={1} mr={2} aria-hidden={true}>
      <Question />
    </Notice.Label>
    <Notice.Content style={{ display: 'flex', alignItems: 'center' }}>
      <Text mr={2}>Meet our SEO Dashboard! Is it working well for you?</Text>
      <Notice.Actions mt={0}>
        <Button mr={2}>
          <Button.Addon>
            <ThumbUpM />
          </Button.Addon>
          <Button.Text>Yes</Button.Text>
        </Button>
        <Button mr={2}>
          <Button.Addon>
            <ThumbDownM />
          </Button.Addon>
          <Button.Text>No</Button.Text>
        </Button>
        <Button use='tertiary'>Ask me later</Button>
      </Notice.Actions>
    </Notice.Content>
    <Notice.CloseIcon>
      <CloseAltM />
    </Notice.CloseIcon>
  </Notice>
);

export default Demo;

NoticeSmart

It is an example that showcases the functionality of the NoticeSmart component.

tsx
import React from 'react';
import { NoticeSmart } from 'intergalactic/notice';
import QuestionAltM from 'intergalactic/icon/Question/m';

const message = 'The reports are based on the data from the Russia Federation and CIS.';

class Demo extends React.PureComponent {
  state = {
    message,
  };

  show = () => {
    setTimeout(() => {
      this.changeText(message);
    }, 2000);
  };

  close = () => {
    this.show();
    this.changeText(null);
  };

  changeText = (message) => {
    this.setState({ message });
  };

  render() {
    const { message } = this.state;
    return (
      <NoticeSmart closable label={<QuestionAltM />} onClose={this.close} hidden={!message}>
        {message}
      </NoticeSmart>
    );
  }
}

export default Demo;
import React from 'react';
import { NoticeSmart } from 'intergalactic/notice';
import QuestionAltM from 'intergalactic/icon/Question/m';

const message = 'The reports are based on the data from the Russia Federation and CIS.';

class Demo extends React.PureComponent {
  state = {
    message,
  };

  show = () => {
    setTimeout(() => {
      this.changeText(message);
    }, 2000);
  };

  close = () => {
    this.show();
    this.changeText(null);
  };

  changeText = (message) => {
    this.setState({ message });
  };

  render() {
    const { message } = this.state;
    return (
      <NoticeSmart closable label={<QuestionAltM />} onClose={this.close} hidden={!message}>
        {message}
      </NoticeSmart>
    );
  }
}

export default Demo;

Custom notice

You have the flexibility to construct custom notices by utilizing individual components. For an example, refer to FeedbackYesNo.

Released under the MIT License.

Released under the MIT License.