This commit is contained in:
Anantshree Chandola 2023-10-17 16:56:54 +05:30 committed by GitHub
parent 82a8b096fa
commit 3fb4cca2ea
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 48 additions and 33 deletions

View file

@ -16,6 +16,7 @@ export const BlankPage = function BlankPage({
showTemplateLibraryModal, showTemplateLibraryModal,
hideTemplateLibraryModal, hideTemplateLibraryModal,
viewTemplateLibraryModal, viewTemplateLibraryModal,
canCreateApp,
}) { }) {
const { t } = useTranslation(); const { t } = useTranslation();
const [deploying, setDeploying] = useState(false); const [deploying, setDeploying] = useState(false);
@ -27,6 +28,8 @@ export const BlankPage = function BlankPage({
{ id: 'whatsapp-and-sms-crm', name: 'Whatsapp and sms crm' }, { id: 'whatsapp-and-sms-crm', name: 'Whatsapp and sms crm' },
]; ];
const appCreationDisabled = !canCreateApp();
return ( return (
<div> <div>
<div className="page-wrapper blank-page-wrapper"> <div className="page-wrapper blank-page-wrapper">
@ -53,6 +56,7 @@ export const BlankPage = function BlankPage({
data-cy="button-new-app-from-scratch" data-cy="button-new-app-from-scratch"
className="col" className="col"
fill={'#FDFDFE'} fill={'#FDFDFE'}
disabled={appCreationDisabled}
> >
Create new application Create new application
</ButtonSolid> </ButtonSolid>
@ -63,12 +67,14 @@ export const BlankPage = function BlankPage({
isLoading={isImportingApp} isLoading={isImportingApp}
data-cy="button-import-an-app" data-cy="button-import-an-app"
className="col" className="col"
variant="tertiary" disabled={appCreationDisabled}
variant={!appCreationDisabled ? 'tertiary' : 'primary'}
> >
<label <label
className="cursor-pointer" className="cursor-pointer"
style={{ visibility: isImportingApp ? 'hidden' : 'visible' }} style={{ visibility: isImportingApp ? 'hidden' : 'visible' }}
data-cy="import-an-application" data-cy="import-an-application"
disabled={appCreationDisabled}
> >
&nbsp;{t('blankPage.importApplication', 'Import an app')} &nbsp;{t('blankPage.importApplication', 'Import an app')}
<input <input
@ -76,6 +82,7 @@ export const BlankPage = function BlankPage({
ref={fileInput} ref={fileInput}
style={{ display: 'none' }} style={{ display: 'none' }}
data-cy="import-option-input" data-cy="import-option-input"
disabled={appCreationDisabled}
/> />
</label> </label>
</ButtonSolid> </ButtonSolid>
@ -86,41 +93,45 @@ export const BlankPage = function BlankPage({
<EmptyIllustration /> <EmptyIllustration />
</div> </div>
</div> </div>
<div className="hr-text" data-cy="action-option"> {!appCreationDisabled && (
Or choose from templates <div>
</div> <div className="hr-text" data-cy="action-option">
<div className="row" data-cy="app-template-row"> Or choose from templates
{staticTemplates.map(({ id, name }) => { </div>
return ( <div className="row" data-cy="app-template-row">
<div {staticTemplates.map(({ id, name }) => {
key={id} return (
className="col-4 app-template-card-wrapper"
onClick={() => {
openCreateAppFromTemplateModal({ id, name });
}}
>
<div
className="template-card cursor-pointer"
data-cy={`${name.toLowerCase().replace(/\s+/g, '-')}-app-template-card`}
>
<div <div
className="img-responsive img-responsive-21x9 card-img-top template-card-img" key={id}
style={{ backgroundImage: `url(assets/images/templates/${id}.png)` }} className="col-4 app-template-card-wrapper"
data-cy={`${name.toLowerCase().replace(/\s+/g, '-')}-app-template-image`} onClick={() => {
/> openCreateAppFromTemplateModal({ id, name });
<div className="card-body"> }}
<h3 >
className="tj-text-md font-weight-500" <div
data-cy={`${name.toLowerCase().replace(/\s+/g, '-')}-app-template-title`} className="template-card cursor-pointer"
data-cy={`${name.toLowerCase().replace(/\s+/g, '-')}-app-template-card`}
> >
{name} <div
</h3> className="img-responsive img-responsive-21x9 card-img-top template-card-img"
style={{ backgroundImage: `url(assets/images/templates/${id}.png)` }}
data-cy={`${name.toLowerCase().replace(/\s+/g, '-')}-app-template-image`}
/>
<div className="card-body">
<h3
className="tj-text-md font-weight-500"
data-cy={`${name.toLowerCase().replace(/\s+/g, '-')}-app-template-title`}
>
{name}
</h3>
</div>
</div>
</div> </div>
</div> );
</div> })}
); </div>
})} </div>
</div> )}
<div className="m-auto text-center mt-4"> <div className="m-auto text-center mt-4">
<button <button
className="see-all-temlplates-link tj-text-sm font-weight-600 bg-transparent border-0" className="see-all-temlplates-link tj-text-sm font-weight-600 bg-transparent border-0"
@ -139,6 +150,7 @@ export const BlankPage = function BlankPage({
onHide={hideTemplateLibraryModal} onHide={hideTemplateLibraryModal}
onCloseButtonClick={hideTemplateLibraryModal} onCloseButtonClick={hideTemplateLibraryModal}
darkMode={darkMode} darkMode={darkMode}
appCreationDisabled={appCreationDisabled}
/> />
</div> </div>
); );

View file

@ -823,6 +823,7 @@ class HomePageComponent extends React.Component {
showTemplateLibraryModal={this.state.showTemplateLibraryModal} showTemplateLibraryModal={this.state.showTemplateLibraryModal}
viewTemplateLibraryModal={this.showTemplateLibraryModal} viewTemplateLibraryModal={this.showTemplateLibraryModal}
hideTemplateLibraryModal={this.hideTemplateLibraryModal} hideTemplateLibraryModal={this.hideTemplateLibraryModal}
canCreateApp={this.canCreateApp}
/> />
)} )}
{!isLoading && meta.total_count === 0 && appSearchKey && ( {!isLoading && meta.total_count === 0 && appSearchKey && (
@ -868,6 +869,7 @@ class HomePageComponent extends React.Component {
onCloseButtonClick={() => this.setState({ showTemplateLibraryModal: false })} onCloseButtonClick={() => this.setState({ showTemplateLibraryModal: false })}
darkMode={this.props.darkMode} darkMode={this.props.darkMode}
openCreateAppFromTemplateModal={this.openCreateAppFromTemplateModal} openCreateAppFromTemplateModal={this.openCreateAppFromTemplateModal}
appCreationDisabled={!this.canCreateApp()}
/> />
</div> </div>
</div> </div>

View file

@ -101,6 +101,7 @@ export default function TemplateLibraryModal(props) {
}} }}
isLoading={deploying} isLoading={deploying}
className="ms-2" className="ms-2"
disabled={props.appCreationDisabled}
> >
{t('homePage.templateLibraryModal.createAppfromTemplate', 'Create application from template')} {t('homePage.templateLibraryModal.createAppfromTemplate', 'Create application from template')}
</ButtonSolid> </ButtonSolid>