PluginProbe ʕ •ᴥ•ʔ
Presto Player / 4.3.3
Presto Player v4.3.3
4.3.3 4.3.2 4.3.1 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 / dashboard / components / MediaHub / BulkActions.js
presto-player / src / admin / dashboard / components / MediaHub Last commit date
test 2 months ago BulkActions.js 2 months ago MediaRow.js 2 months ago PostSettings.js 2 months ago SearchBar.js 2 months ago index.js 2 months ago
BulkActions.js
86 lines
1 import React from "react";
2 import { __ } from "@wordpress/i18n";
3 import { Container, Button } from "@bsf/force-ui";
4 import { Trash, Trash2, CheckCheck, FolderArchive } from "lucide-react";
5
6 const BulkActions = ({
7 selected = [],
8 selectedLabel,
9 onDelete,
10 onTrash,
11 onStatusChange,
12 onCancel,
13 }) => {
14 if (selected.length === 0) {
15 return null;
16 }
17
18 return (
19 <Container.Item className="flex justify-between items-center gap-2 bg-background-primary px-6 py-4 rounded-lg">
20 <span className="text-sm font-normal leading-5 text-text-secondary">
21 <span className="text-text-primary">
22 {__("Bulk actions: ", "presto-player")}
23 </span>
24 {selectedLabel || `${selected.length} ${__("media selected", "presto-player")}`}
25 </span>
26 <div className="flex items-center gap-0">
27 <Button
28 variant="ghost"
29 size="sm"
30 onClick={() => onStatusChange(selected, "publish")}
31 className="text-text-primary"
32 icon={<CheckCheck width="15" height="15" />}
33 iconPosition="left"
34 >
35 {__("Publish", "presto-player")}
36 </Button>
37 <Button
38 variant="ghost"
39 size="sm"
40 onClick={() => onStatusChange(selected, "draft")}
41 className="text-text-primary"
42 icon={<FolderArchive width="15" height="15" />}
43 iconPosition="left"
44 >
45 {__("Draft", "presto-player")}
46 </Button>
47 {onTrash && (
48 <Button
49 variant="ghost"
50 size="sm"
51 onClick={() => onTrash(selected)}
52 className="text-text-primary"
53 icon={<Trash width="15" height="15" />}
54 aria-label={__("Move to Trash", "presto-player")}
55 iconPosition="left"
56 >
57 {__("Trash", "presto-player")}
58 </Button>
59 )}
60 <Button
61 variant="ghost"
62 size="sm"
63 onClick={() => onDelete(selected)}
64 className="text-text-primary"
65 icon={<Trash2 width="15" height="15" />}
66 aria-label={__("Delete permanently", "presto-player")}
67 iconPosition="left"
68 >
69 {__("Delete", "presto-player")}
70 </Button>
71 <div className="border border-solid h-4 bg-red-400" />
72 <Button
73 variant="ghost"
74 size="sm"
75 onClick={onCancel}
76 className="text-text-primary"
77 >
78 {__("Cancel", "presto-player")}
79 </Button>
80 </div>
81 </Container.Item>
82 );
83 };
84
85 export default BulkActions;
86