mirror of
https://github.com/mue/mue.git
synced 2026-07-17 05:54:14 +02:00
* feat: add professional three-branch release workflow automation (#1129) - Add version-bump workflow for semantic versioning across all files - Add beta-release workflow for automated pre-release testing - Add production-release workflow with manual approval gates - Add hotfix-release workflow for emergency patches - Create comprehensive CONTRIBUTING.md with workflow guide - Create detailed RELEASE_PROCESS.md for maintainers - Add PR template with release checklists - Update CODEOWNERS to protect workflow files - Update README with contribution links - Remove /docs from .gitignore to allow documentation This implements a dev beta main branching strategy with: - Automated version management across 6 files - Changelog generation from conventional commits - GitHub Releases with build artifacts - Environment-based approvals for production - Back-merge support for hotfixes * feat: new default quotes experience, improve added page * Fix/beta workflow version check (#1131) * fix(workflows): prevent beta release for non-beta versions * fix(workflows): address copilot PR review feedback - Support iterative beta versions (7.6.0-beta.1 -> 7.6.0-beta.2) - Remove tag trigger from beta workflow to prevent premature releases - Fix tag format in docs/summaries to include 'v' prefix - Clarify deployment approval wording * feat: replace mui with new style * feat: improve time formatting in Clock component with padded digits * fix: change Checkbox component from label to div for better semantics * fix: change Switch component from label to div for better semantics * feat: add smooth animation to reset functionality in Slider component * feat: enhance accessibility and styling for form components including Checkbox, Dropdown, Radio, Slider, and Text * feat: enhance WeatherOptions component with improved layout and auto location reset functionality * feat: update Slider and Dropdown components with improved layout and z-index adjustments * feat: add reset functionality to Dropdown component with toast notification * feat: update Dropdown component styles for improved layout and structure * feat: update languageSettings component with increased padding for better spacing * feat: bump version to 7.6.0 across all manifests and documentation --------- Signed-off-by: Alex Sparkes <alexsparkes@gmail.com> Co-authored-by: David Ralph <me@davidcralph.co.uk>
56 lines
1.4 KiB
JavaScript
56 lines
1.4 KiB
JavaScript
import variables from 'config/variables';
|
|
import { memo, useState, useCallback } from 'react';
|
|
|
|
import EventBus from 'utils/eventbus';
|
|
|
|
import './Switch.scss';
|
|
|
|
const Switch = memo((props) => {
|
|
const [checked, setChecked] = useState(localStorage.getItem(props.name) === 'true');
|
|
|
|
const handleChange = useCallback(() => {
|
|
const value = !checked;
|
|
localStorage.setItem(props.name, value);
|
|
setChecked(value);
|
|
|
|
if (props.onChange) {
|
|
props.onChange(value);
|
|
}
|
|
|
|
variables.stats.postEvent(
|
|
'setting',
|
|
`${props.name} ${checked ? 'enabled' : 'disabled'}`,
|
|
);
|
|
|
|
if (props.element) {
|
|
if (!document.querySelector(props.element)) {
|
|
document.querySelector('.reminder-info').style.display = 'flex';
|
|
return localStorage.setItem('showReminder', true);
|
|
}
|
|
}
|
|
|
|
EventBus.emit('refresh', props.category);
|
|
}, [checked, props]);
|
|
|
|
return (
|
|
<div className="switch-wrapper">
|
|
{!props.header && <span className="switch-label">{props.text}</span>}
|
|
<div className={`switch-track ${checked ? 'checked' : ''}`} onClick={handleChange}>
|
|
<div className="switch-thumb" />
|
|
</div>
|
|
<input
|
|
type="checkbox"
|
|
name={props.name}
|
|
checked={checked}
|
|
onChange={handleChange}
|
|
className="switch-input"
|
|
aria-hidden="true"
|
|
/>
|
|
</div>
|
|
);
|
|
});
|
|
|
|
Switch.displayName = 'Switch';
|
|
|
|
export { Switch as default, Switch };
|