import { fromEvent, filter, map, merge, sideEffect } from '../../../index.js'
const fruitArray = [
"tomatoes",
"cucumbers",
"eggplants",
"squash",
"olives",
"peppers",
"pumpkins",
"peas",
"avocados",
"corn"
];
const getRandomFruit = () => fruitArray[Math.floor(Math.random()*fruitArray.length)];
const getCurrentDateTime = () => new Date(Date.now()).toLocaleString()
const renderDOM = (state) => {
const div = document.createElement('div')
div.innerHTML = `Sorry, even at ${state.date}, ${state.fruit} are/is still a fruit.
`
document.body.appendChild(div)
}
const buttonClicked = fromEvent(document, 'click')
|> filter(event => event.target.tagName === 'BUTTON')
|> map(() => ({ date: getCurrentDateTime(), fruit: getRandomFruit() }))
buttonClicked
|> sideEffect(renderDOM)
buttonClicked
|> sideEffect(state => console.log(state))