Foxford PDF Generator
Генерация PDF документов на клиенте.
Используется для генерации сертификатов, дипломов, благодарственных писем.
npm start | Запуск сервера для редактирования шаблонов |
Компонент 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}
/>
)
}
}