| Server IP : 193.146.211.90 / Your IP : 10.85.6.55 Web Server : Apache System : Linux wordpress-gti-69dcdb54f7-n4wdq 6.11.8-arch1-2 #1 SMP PREEMPT_DYNAMIC Fri, 15 Nov 2024 15:35:07 +0000 x86_64 User : 1001 ( 1001) PHP Version : 8.2.25 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /bitnami/wordpress/wp-content/plugins/presto-player/src/admin/blocks/shared/presets/ |
Upload File : |
/**
* WordPress dependencies
*/
const { __ } = wp.i18n;
const {
ToggleControl,
Flex,
Button,
BaseControl,
RangeControl,
TextControl,
SelectControl,
TextareaControl,
} = wp.components;
const { useEffect, useState } = wp.element;
const { useSelect } = wp.data;
import ColorPopup from "../components/ColorPopup";
import UrlSelect from "../components/UrlSelect";
import YoutubeChannelId from "./parts/YoutubeChannelId";
import { css, jsx } from "@emotion/core";
export default function ({ state, updateState, className, value, setValue }) {
const { action_bar } = state;
const [editYoutube, setEditYoutube] = useState(false);
const branding = useSelect((select) => {
return select("presto-player/player").branding();
});
const youtube = useSelect((select) => {
return select("presto-player/player").youtube();
});
const updateActionBar = (updated) => {
updateState({
...state,
action_bar: {
...action_bar,
...updated,
},
});
};
useEffect(() => {
if (!action_bar?.text) {
updateActionBar({
text: "Like this?",
});
}
if (!action_bar?.button_type) {
updateActionBar({
button_type: "custom",
});
}
if (!action_bar?.button_text) {
updateActionBar({
button_text: "Click Here",
});
}
}, [state]);
const renderYoutubeChannelForm = () => {
if (action_bar?.button_type !== "youtube") {
return;
}
return editYoutube ? (
<YoutubeChannelId
onClose={() => setEditYoutube(false)}
value={value}
setValue={setValue}
/>
) : (
<div>
<Button
isSecondary
onClick={(e) => {
e.preventDefault();
setEditYoutube(true);
}}
>
{youtube?.channel_id
? __("Update Youtube Channel Id", "presto-player")
: __("Add Youtube Channel Id", "presto-player")}
</Button>
<br />
<br />
<br />
</div>
);
};
return (
<div className={className}>
<BaseControl>
<h3>{__("Action Bar", "presto-player")}</h3>
</BaseControl>
<BaseControl className="presto-player__control--large-play">
<ToggleControl
label={__("Enable", "presto-player")}
help={__(
"Show an action bar below your player while it's playing.",
"presto-player"
)}
onChange={(enabled) => {
updateActionBar({
enabled,
});
}}
checked={action_bar?.enabled}
/>
</BaseControl>
{!!action_bar?.enabled && (
<>
<BaseControl
className="presto-player__control--percentage-watched"
css={css`
padding-left: 8px;
margin-bottom: 34px !important;
.components-range-control__root {
align-items: flex-start;
}
`}
>
<RangeControl
label={__("Display At (Percentage)", "presto-player")}
labelPosition="top"
onChange={(percentage_start) => {
updateActionBar({
percentage_start,
});
}}
marks={[
{
value: 0,
label: __("Start", "presto-player"),
},
{
value: 50,
label: __("50% Watched", "presto-player"),
},
{
value: 100,
label: __("End", "presto-player"),
},
]}
shiftStep={5}
value={action_bar?.percentage_start || 0}
css={css`
.components-range-control__slider {
position: relative !important;
}
`}
/>
</BaseControl>
<BaseControl className="presto-player__control--large-play">
<TextareaControl
label={__("Text", "presto-player")}
help={__("Action bar text.", "presto-player")}
value={action_bar?.text}
onChange={(text) =>
updateActionBar({
text,
})
}
/>
</BaseControl>
<BaseControl className="presto-player__control--large-play">
<Flex>
<BaseControl.VisualLabel>
{__("Action Bar Background", "presto-player")}
</BaseControl.VisualLabel>
<ColorPopup
color={action_bar?.background_color || "#1d1d1d"}
setColor={(value) =>
updateActionBar({
background_color: value && value.hex,
})
}
/>
</Flex>
</BaseControl>
<BaseControl>
<h3>{__("Button", "presto-player")}</h3>
</BaseControl>
<BaseControl className="presto-player__control--button-type">
<SelectControl
label={__("Button Type", "presto-player")}
value={action_bar?.button_type}
options={[
{
value: "custom",
label: __("Custom", "presto-player"),
},
{
value: "youtube",
label: __("YouTube Subscribe", "presto-player"),
},
{
value: "none",
label: __("None", "presto-player"),
},
]}
onChange={(button_type) =>
updateActionBar({
button_type,
})
}
/>
</BaseControl>
{action_bar?.button_type === "youtube" && youtube?.channel_id && (
<ToggleControl
label={__("Show Count", "presto-player")}
help={__("Show your follower count.", "presto-player")}
onChange={(button_count) => {
updateActionBar({
button_count,
});
}}
checked={action_bar?.button_count}
/>
)}
{renderYoutubeChannelForm()}
{action_bar?.button_type === "custom" && (
<div>
<BaseControl className="presto-player__control--button-text">
<TextControl
label={__("Button Text", "presto-player")}
help={<p>{__("Submit button text", "presto-player")}</p>}
value={action_bar?.button_text}
onChange={(button_text) => updateActionBar({ button_text })}
/>
</BaseControl>
<BaseControl className="presto-player__control--button-text">
<BaseControl.VisualLabel>
<p> {__("Button Link", "presto-player")}</p>
</BaseControl.VisualLabel>
<UrlSelect
setSettings={(val) => {
updateActionBar({
button_link: val,
});
}}
settings={action_bar?.button_link || {}}
/>
</BaseControl>
<BaseControl className="presto-player__control--button-radius">
<RangeControl
label={__("Round Corners", "presto-player")}
help={__("Border radius of the button", "presto-player")}
value={action_bar?.button_radius || 0}
onChange={(button_radius) =>
updateActionBar({ button_radius })
}
min={0}
max={25}
/>
</BaseControl>
<BaseControl className="presto-player__control--button-color">
<Flex>
<BaseControl.VisualLabel>
{__("Button Color", "presto-player")}
</BaseControl.VisualLabel>
<ColorPopup
color={action_bar?.button_color || branding?.color}
setColor={(value) =>
updateActionBar({
button_color: value && value.hex,
})
}
/>
</Flex>
</BaseControl>
<BaseControl className="presto-player__control--button-text-color">
<Flex>
<BaseControl.VisualLabel>
{__("Button Text Color", "presto-player")}
</BaseControl.VisualLabel>
<ColorPopup
color={action_bar?.button_text_color || "#ffffff"}
setColor={(value) =>
updateActionBar({
button_text_color: value && value.hex,
})
}
/>
</Flex>
</BaseControl>
</div>
)}
</>
)}
</div>
);
}