Alert
Alert отображает заметное сообщение и связанные с ним дополнительные действия. Alert отображает важное краткое сообщение и предлагает действие, которые пользователь может предпринять. Помимо функциональных кнопок alert всегда содержит иконку закрытия. Это нужно, чтобы у пользователя был выбор делать предложенное действие или нет. В нашем случае alert это только текстовая информация и кнопкой действия, функцию всплывающего окна выполняет popup.
Структура компонента
Alert состоит из текста сообщения и кнопки целевого действия. Мы просто оборачиваем эти два элемента в обёртку и выводим в контейнер popup.
Button
Кнопки передают действия, которые пользователи могут совершать. Кнопки должны указывать на то, что они могут инициировать действие, их состояние должно быть чётким, а также их должно быть легко найти среди других элементов интерфейса. Подробнее про кнопки button.

Вот так выглядит alert с заполненной информацией. В данном примере заголовок и иконка закрытия относятся к компоненту popup, поэтому мы их не выделяем.

Состояние компонента
Состояние у компонента такое же как и у popup, можешь прочитаать про это подробнее.
Реализация
Так как вся механика закрытия и открытия компонента прописана в popup, в alert мы только прописываем функцию нажатия на кнопку.
import React, { PureComponent } from 'react'
import A_Button from '../../atoms/A_Button/A_Button.jsx'
import './O_Alert.css'
export default class O_Alert extends PureComponent {
  constructor(props) {
    super(props)
    this.handleButtonClick = this.handleButtonClick.bind(this)
  }
  handleButtonClick() {
    console.log('Hello World!')
  }
  render() {
    const { content } = this.props
    return (
      <div className="O_Alert">
        <div className="A_AlertContent">{content}</div>
        <A_Button text="Принять" handleClick={this.handleButtonClick} />
      </div>
    )
  }
}Затем, в файле O_Alert.css прописываем стили для alert, нужно назначить только стили текста и отступы между кнопкой и параграфом.
.O_Alert {
  width: 570px;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-around;
}
.O_Alert .A_AlertContent {
  line-height: 140%;
  font-weight: 200;
  font-size: 16px;
  color: #495151;
}Мы создали компонент, но описали только его функционал, теперь его нужно отрендерить. Нужно заполнить параграф контентом. Ты можешь увидеть как это делаем мы, а также посмотреть получившийся alert.
import React from 'react'
import ReactDOM from 'react-dom'
import S_Popup from '../../components/superorganisms/S_Popup/S_Popup.jsx'
import O_Alert from '../../components/organisms/O_Alert/O_Alert.jsx'
const content =
  'Возможно, у вашей карты закончился срок действия или на ней недостаточно
  денег. Проверьте карту или привяжите другую, чтобы продолжать быть в Плюсе.'
document.addEventListener('DOMContentLoaded', () => {
  ReactDOM.render(
    <S_Popup popupButtonText="Открыть попап" popupTitle="Информация о подписке">
      <O_Alert content={content} />
    </S_Popup>,
    document.body
  )
})
Получаем следующий результат.
 
Ссылки
Также для тебя ссылки на Figma с дизайн системой и GitHub с библиотекой компонентов.
Составляющие
В этот компонент часто выводятся следующие компоненты.