Генерация PDF документов на клиенте. Используется для генерации сертификатов, дипломов, благодарственных писем.
Command | Description |
---|---|
npm start |
Запуск сервера для редактирования шаблонов |
npm run dev |
Запускает сборку umd в режиме разработки |
Компонент DocumentList
несёт в себе скрытую реализацию рендера списка документов, связанную непосредственно с библиотекой генерации. Его использование требует выполнения определенных условий, а именно:
-
В случае использования нескольких
DocumentList
на странице требуется блокировка запросов на генерацию с разных экземпляров компонента. Для этого нужно использовать пропсыonRequestGenerating
,onStartGenerating
,onEndGenerating
для установки/снятия флага, который будет проверяться вonRequestGenerating
-
Функция
startGenerating
должна выстреливать экшен для загрузки данных выбранного для просмотра/генерации документа. Принимает ID в качестве аргумента. -
Загруженные данные выбранного документа должны попадать в
selectedDocumentData
class MyComponent extends Component {
state = {
isGenerating: false,
}
endGenerating = (generatedInfo) => {
this.setState({ isGenerating: false })
}
startGenerating = (id) => {
const { actions } = this.props
this.setState({ isGenerating: true })
actions.getUserCertificate(id) // загружаем выбранный документ в стор
}
requestGenerating = () => {
if (this.state.isGenerating) { return false } // запрещаем генерацию
return true // продолжаем генерацию
}
render() {
const { document, list } = this.props // получаем данные выбранного документа и список документов
return (
<DocumentList
selectedDocumentData={document.data}
documents={list}
onRequestGenerating={this.requestGenerating}
onStartGenerating={this.startGenerating}
onEndGenerating={this.endGenerating}
/>
)
}
}