mirror of https://github.com/mue/mue.git
feat(greeting): Ability to create, edit and remove custom events
This commit is contained in:
parent
7876bd69fd
commit
40e04af5d4
|
@ -5,7 +5,6 @@ import { nth, convertTimezone } from 'utils/date';
|
||||||
import EventBus from 'utils/eventbus';
|
import EventBus from 'utils/eventbus';
|
||||||
|
|
||||||
import './greeting.scss';
|
import './greeting.scss';
|
||||||
import events from './events.json';
|
|
||||||
|
|
||||||
const isEventsEnabled = localStorage.getItem('events') !== 'false';
|
const isEventsEnabled = localStorage.getItem('events') !== 'false';
|
||||||
export default class Greeting extends PureComponent {
|
export default class Greeting extends PureComponent {
|
||||||
|
@ -34,7 +33,10 @@ export default class Greeting extends PureComponent {
|
||||||
const month = time.getMonth();
|
const month = time.getMonth();
|
||||||
const date = time.getDate();
|
const date = time.getDate();
|
||||||
|
|
||||||
const event = events.find((e) => e.month - 1 === month && e.date === date);
|
// Parse the customEvents from localStorage
|
||||||
|
const customEvents = JSON.parse(localStorage.getItem('customEvents') || '[]');
|
||||||
|
|
||||||
|
const event = customEvents.find((e) => e.month - 1 === month && e.date === date);
|
||||||
if (event) {
|
if (event) {
|
||||||
message = variables.getMessage(event.id);
|
message = variables.getMessage(event.id);
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,6 +77,20 @@ const GreetingOptions = () => {
|
||||||
setCustomEvents(defaultEvents);
|
setCustomEvents(defaultEvents);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function updateEvent(index, updatedEvent) {
|
||||||
|
// Update the event in your state
|
||||||
|
setCustomEvents((prevEvents) => {
|
||||||
|
const newEvents = [...prevEvents];
|
||||||
|
newEvents[index] = updatedEvent;
|
||||||
|
return newEvents;
|
||||||
|
});
|
||||||
|
|
||||||
|
// Update the event in localStorage
|
||||||
|
const customEvents = JSON.parse(localStorage.getItem('customEvents') || '[]');
|
||||||
|
customEvents[index] = updatedEvent;
|
||||||
|
localStorage.setItem('customEvents', JSON.stringify(customEvents));
|
||||||
|
}
|
||||||
|
|
||||||
const AdditionalOptions = () => {
|
const AdditionalOptions = () => {
|
||||||
return (
|
return (
|
||||||
<Row final={true}>
|
<Row final={true}>
|
||||||
|
@ -158,7 +172,10 @@ const GreetingOptions = () => {
|
||||||
<TextareaAutosize
|
<TextareaAutosize
|
||||||
value={event.name}
|
value={event.name}
|
||||||
placeholder="Event Name"
|
placeholder="Event Name"
|
||||||
onChange={(e) => this.message(e, true, index)}
|
onChange={(e) => {
|
||||||
|
const updatedEvent = { ...event, name: e.target.value };
|
||||||
|
updateEvent(index, updatedEvent);
|
||||||
|
}}
|
||||||
varient="outlined"
|
varient="outlined"
|
||||||
style={{ padding: '0' }}
|
style={{ padding: '0' }}
|
||||||
/>
|
/>
|
||||||
|
@ -168,11 +185,27 @@ const GreetingOptions = () => {
|
||||||
<div className="messageAction">
|
<div className="messageAction">
|
||||||
<div className="eventDateControl">
|
<div className="eventDateControl">
|
||||||
<label>Month</label>
|
<label>Month</label>
|
||||||
<input id="number" type="number" value={event.month} />
|
<input
|
||||||
|
id="month"
|
||||||
|
type="number"
|
||||||
|
value={event.month}
|
||||||
|
onChange={(e) => {
|
||||||
|
const updatedEvent = { ...event, month: parseInt(e.target.value, 10) };
|
||||||
|
updateEvent(index, updatedEvent);
|
||||||
|
}}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="eventDateControl">
|
<div className="eventDateControl">
|
||||||
<label>Day</label>
|
<label>Day</label>
|
||||||
<input id="number" type="number" value={event.date} />
|
<input
|
||||||
|
id="day"
|
||||||
|
type="number"
|
||||||
|
value={event.date}
|
||||||
|
onChange={(e) => {
|
||||||
|
const updatedEvent = { ...event, date: parseInt(e.target.value, 10) };
|
||||||
|
updateEvent(index, updatedEvent);
|
||||||
|
}}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<Button
|
<Button
|
||||||
type="settings"
|
type="settings"
|
||||||
|
|
|
@ -273,6 +273,6 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "customEvents",
|
"name": "customEvents",
|
||||||
"value": "[]"
|
"value": "[{\"id\":\"widgets.greeting.christmas\",\"name\":\"Merry Christmas\",\"month\":12,\"date\":25},{\"id\":\"widgets.greeting.newyear\",\"name\":\"Happy New Year\",\"month\":1,\"date\":1},{\"id\":\"widgets.greeting.halloween\",\"name\":\"Happy Halloween\",\"month\":10,\"date\":31},{\"id\":\"widgets.greeting.halloween\",\"name\":\"\",\"month\":10,\"date\":31}]"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
Loading…
Reference in New Issue