Foxford PDF Generator
Генерация 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}
/>
)
}
}