PluginProbe ʕ •ᴥ•ʔ
Presto Player / 2.2.2
Presto Player v2.2.2
4.3.0 4.2.4 4.2.3 4.2.2 4.2.0 4.2.1 trunk 1.10.0 1.10.1 1.10.2 1.11.0 1.12.0 1.13.0 1.14.0 1.14.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.10 1.6.11 1.6.12 1.6.13 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.11 2.0.12 2.0.13 2.0.14 2.0.15 2.0.16 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.2.0 2.2.1 2.2.2 2.2.3 2.2.3-beta1 2.3.0 2.3.1 2.3.2 2.3.3 3.0.0 3.0.0-beta1 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.1.0 3.1.1 3.1.2 3.1.3 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4
presto-player / src / admin / settings / components / SaveButton.js
presto-player / src / admin / settings / components Last commit date
CTA.js 5 years ago CheckboxControl.js 5 years ago CodeMirror.js 3 years ago ColorPicker.js 5 years ago ComboboxControl.js 3 years ago Disabled.js 5 years ago Fields.js 5 years ago Group.js 3 years ago Groups.js 5 years ago Integration.js 5 years ago Loading.js 5 years ago Media.js 3 years ago Notices.js 3 years ago NullView.js 5 years ago Page.js 5 years ago SaveButton.js 3 years ago SelectControl.js 5 years ago TextControl.js 5 years ago ToggleControl.js 5 years ago
SaveButton.js
61 lines
1 /**
2 * WordPress dependencies
3 */
4 import { useSelect } from "@wordpress/data";
5 import { __ } from "@wordpress/i18n";
6 import { store as coreStore } from "@wordpress/core-data";
7 import { Button } from "@wordpress/components";
8
9 export default function SaveButton({
10 onSave,
11 children,
12 busy,
13 loading,
14 ...rest
15 }) {
16 const { isDirty, isSaving } = useSelect((select) => {
17 const {
18 __experimentalGetDirtyEntityRecords,
19 isSavingEntityRecord,
20 } = select(coreStore);
21
22 const dirtyEntityRecords = (
23 __experimentalGetDirtyEntityRecords() || []
24 ).filter((r) => r.name !== "webhook");
25
26 return {
27 isDirty: dirtyEntityRecords.length > 0,
28 isSaving: dirtyEntityRecords.some((record) =>
29 isSavingEntityRecord(record.kind, record.name, record.key)
30 ),
31 };
32 }, []);
33
34 const disabled = !isDirty || isSaving;
35
36 if (loading) {
37 return (
38 <ScSkeleton
39 style={{
40 width: "120px",
41 height: "35px",
42 display: "inline-block",
43 }}
44 ></ScSkeleton>
45 );
46 }
47
48 return (
49 <Button
50 isPrimary
51 aria-disabled={disabled}
52 disabled={disabled || isSaving || busy}
53 isBusy={isSaving || busy}
54 onClick={disabled ? undefined : onSave}
55 {...rest}
56 >
57 {children}
58 </Button>
59 );
60 }
61