PluginProbe
Extendify / 3.0.4
Extendify v3.0.4
3.2.1 3.2.0 3.1.6 3.1.5 3.1.4 3.1.3 3.1.2 3.1.1 3.1.0 3.0.6 3.0.5 3.0.4 trunk 0.1.0 0.10.0 0.10.1 0.10.2 0.11.0 0.11.1 0.2.0 0.3.0 0.3.1 0.4.0 0.5.0 0.6.0 All 127 releases
extendify / src / Agent / workflows / misc / components / ToursList.jsx

ToursList.jsx in Extendify 3.0.4, at src/Agent/workflows/misc/components/ToursList.jsx

47 lines 1.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 import { useTourStore } from '@agent/state/tours';
2 import tours from '@agent/tours/tours';
3 import { Icon, video } from '@wordpress/icons';
4
5 const availableTours = Object.values(tours);
6
7 export const ToursList = ({ onConfirm }) => {
8 if (availableTours.length === 0) return;
9
10 return (
11 <div className="flex w-full items-start gap-2.5 p-2">
12 <div className="w-7 flex-shrink-0" />
13 <div className="flex min-w-0 flex-1 flex-col gap-2">
14 {availableTours.map((tour) => (
15 <SingleTour
16 key={tour.id}
17 tour={tour}
18 onClick={() => {
19 onConfirm?.();
20 }}
21 />
22 ))}
23 </div>
24 </div>
25 );
26 };
27
28 export const SingleTour = ({ tour, onClick }) => {
29 const { startTour } = useTourStore();
30 return (
31 <div className="group relative flex items-center">
32 <div className="pointer-events-none absolute inset-0 rounded-sm opacity-10 transition-opacity duration-100 group-hover:bg-design-main" />
33 <button
34 type="button"
35 className="flex w-full items-center gap-2 rounded-sm border border-gray-300 bg-transparent p-3 text-left text-sm leading-none text-gray-900 focus:outline-hidden focus:ring-wp focus:ring-design-main group-hover:ring-wp group-hover:ring-design-main"
36 onClick={() => {
37 startTour(tour);
38 onClick?.();
39 }}
40 >
41 <Icon icon={video} className="h-6 w-6 fill-gray-700 leading-none" />
42 {tour.message}
43 </button>
44 </div>
45 );
46 };
47