PluginProbe ʕ •ᴥ•ʔ
Starter Sites & Templates by Neve / trunk
Starter Sites & Templates by Neve vtrunk
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