Viewing File: /home/maglabs/marco/wp-content/plugins/extendify/src/Assist/tasks/UpdateSiteDescription.jsx
import { useEffect, useState, useRef } from '@wordpress/element';
import { __ } from '@wordpress/i18n';
import classNames from 'classnames';
import { getOption, updateOption } from '@assist/api/WPApi';
import { useTasksStore } from '@assist/state/Tasks';
export const UpdateSiteDescription = ({ popModal, setModalTitle }) => {
const [siteDescription, setSiteDescription] = useState(undefined);
const [initialValue, setInitialValue] = useState(undefined);
const inputRef = useRef();
const { completeTask } = useTasksStore();
useEffect(() => {
setModalTitle(__('Add site description', 'extendify-local'));
}, [setModalTitle]);
useEffect(() => {
getOption('blogdescription').then((text) => {
setSiteDescription(text);
setInitialValue(text);
});
}, [setSiteDescription]);
useEffect(() => {
inputRef?.current?.focus();
}, [initialValue]);
if (typeof siteDescription === 'undefined') {
return <div className="h-32">{__('Loading...', 'extendify-local')}</div>;
}
return (
<form className="gap-6 flex flex-col" onSubmit={(e) => e.preventDefault()}>
<div>
<label
className="block mb-1 text-gray-900 text-sm"
htmlFor="extendify-site-description-input">
{__('Site description', 'extendify-local')}
</label>
<input
ref={inputRef}
type="text"
name="extendify-site-description-input"
id="extendify-site-description-input"
className="w-96 max-w-full border border-gray-900 px-2 h-12 input-focus"
onChange={(e) => {
setSiteDescription(e.target.value);
}}
value={siteDescription}
placeholder={__('Enter a site description...', 'extendify-local')}
/>
</div>
<div>
<button
disabled={siteDescription === initialValue}
className={classNames(
'px-4 py-3 text-white bg-design-main button-focus border-0 rounded relative cursor-pointer w-1/5',
{
'opacity-50 cursor-default': siteDescription === initialValue,
},
)}
onClick={async () => {
await updateOption('blogdescription', siteDescription);
completeTask('site-description');
popModal();
}}>
{__('Save', 'extendify-local')}
</button>
</div>
</form>
);
};
Back to Directory
File Manager