PluginProbe ʕ •ᴥ•ʔ
Starter Sites & Templates by Neve / 1.4.1
Starter Sites & Templates by Neve v1.4.1
1.4.1 1.4.0 1.3.0 1.2.29 1.2.28 1.2.6 1.2.7 1.2.8 1.2.9 trunk 1.0.10 1.0.11 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.20 1.1.21 1.1.22 1.1.23 1.1.24 1.1.25 1.1.26 1.1.27 1.1.28 1.1.29 1.1.3 1.1.30 1.1.31 1.1.32 1.1.33 1.1.34 1.1.35 1.1.36 1.1.37 1.1.38 1.1.39 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.3 1.2.4 1.2.5
templates-patterns-collection / editor / src / components / publish-button.js
templates-patterns-collection / editor / src / components Last commit date
content.js 1 year ago filters.js 1 year ago header.js 1 year ago import-modal.js 1 year ago list-item.js 1 year ago notices.js 5 years ago pagination.js 5 years ago preview.js 1 year ago publish-button.js 2 years ago template-predefine.js 2 years ago templates-content.js 1 year ago tpc-templates-button.js 2 years ago
publish-button.js
110 lines
1 /* eslint-disable camelcase */
2 import { __ } from '@wordpress/i18n';
3 import { Button } from '@wordpress/components';
4 import { getTemplate, publishTemplate } from '../data/templates-cloud';
5 import classnames from 'classnames';
6
7 const PublishButton = ( {
8 canPredefine,
9 setLoading,
10 templateData,
11 setScreenshotURL,
12 setPublished,
13 saveMeta,
14 createSuccessNotice,
15 published,
16 createErrorNotice,
17 isLoading,
18 } ) => {
19 if ( ! canPredefine ) {
20 return null;
21 }
22
23 const {
24 _ti_tpc_template_id,
25 _ti_tpc_site_slug,
26 _ti_tpc_screenshot_url,
27 _ti_tpc_published,
28 link,
29 } = templateData;
30
31 const onPublish = async () => {
32 setLoading( 'publishing' );
33 try {
34 await publishTemplate(
35 _ti_tpc_template_id,
36 _ti_tpc_site_slug,
37 _ti_tpc_screenshot_url,
38 ! _ti_tpc_published,
39 link
40 ).then( async ( r ) => {
41 if ( r.success ) {
42 await getTemplate( _ti_tpc_template_id ).then(
43 ( results ) => {
44 if ( _ti_tpc_template_id === results.template_id ) {
45 setScreenshotURL( results.template_thumbnail );
46 setPublished( ! published );
47 saveMeta( {
48 ...templateData,
49 _ti_tpc_published: ! published,
50 } );
51 if ( published ) {
52 createSuccessNotice(
53 __(
54 'Template Unpublished.',
55 'templates-patterns-collection'
56 ),
57 {
58 type: 'snackbar',
59 }
60 );
61 } else {
62 createSuccessNotice(
63 __(
64 'Template Published.',
65 'templates-patterns-collection'
66 ),
67 {
68 type: 'snackbar',
69 }
70 );
71 }
72 }
73 }
74 );
75 }
76 } );
77 } catch ( error ) {
78 createErrorNotice(
79 __(
80 'Something happened when publishing the template.',
81 'templates-patterns-collection'
82 )
83 );
84 }
85 setLoading( false );
86 };
87
88 return (
89 <Button
90 isSecondary
91 onClick={ onPublish }
92 disabled={ false !== isLoading }
93 className={ classnames( {
94 'is-loading': 'publishing' === isLoading,
95 } ) }
96 >
97 { published &&
98 ( 'publishing' === isLoading
99 ? __( 'Unpublishing', 'templates-patterns-collection' )
100 : __( 'Unpublish', 'templates-patterns-collection' ) ) }
101 { ! published &&
102 ( 'publishing' === isLoading
103 ? __( 'Publishing', 'templates-patterns-collection' )
104 : __( 'Publish', 'templates-patterns-collection' ) ) }
105 </Button>
106 );
107 };
108
109 export default PublishButton;
110