@foxford/pdf-generator
v1.1.6
Published
React component for generate pdf on client from dom node
Downloads
306
Readme
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}
/>
)
}
}