diff --git a/packages/tidal/package.json b/packages/tidal/package.json index 94507aa9..1758732d 100644 --- a/packages/tidal/package.json +++ b/packages/tidal/package.json @@ -5,7 +5,7 @@ "module": "tidal.mjs", "repository": { "type": "git", - "url": "git+https://github.com/felixroos/hs2js.git" + "url": "git+https://github.com/tidalcycles/strudel/tree/main/packages/tidal" }, "keywords": [ "haskell", diff --git a/website/src/repl/components/panel/ConsoleTab.jsx b/website/src/repl/components/panel/ConsoleTab.jsx index fdc07d88..c6a2403a 100644 --- a/website/src/repl/components/panel/ConsoleTab.jsx +++ b/website/src/repl/components/panel/ConsoleTab.jsx @@ -1,45 +1,14 @@ -import { logger } from '@strudel/core'; -import useEvent from '@src/useEvent.mjs'; import cx from '@src/cx.mjs'; -import { nanoid } from 'nanoid'; -import { useCallback, useState } from 'react'; import { useSettings } from '../../../settings.mjs'; +import { useStore } from '@nanostores/react'; +import { $strudel_log_history } from '../useLogger'; -function getUpdatedLog(log, event) { - const { message, type, data } = event.detail; - const lastLog = log.length ? log[log.length - 1] : undefined; - const id = nanoid(12); - // if (type === 'loaded-sample' && lastLog.type === 'load-sample' && lastLog.url === data.url) { - if (type === 'loaded-sample') { - // const loadIndex = log.length - 1; - const loadIndex = log.findIndex(({ data: { url }, type }) => type === 'load-sample' && url === data.url); - log[loadIndex] = { message, type, id, data }; - } else if (lastLog && lastLog.message === message) { - log = log.slice(0, -1).concat([{ message, type, count: (lastLog.count ?? 1) + 1, id, data }]); - } else { - log = log.concat([{ message, type, id, data }]); - } - return log.slice(-20); -} - -//ensures that the log state persists when component is remounted -let logSaved = []; export function ConsoleTab() { - const [log, setLog] = useState(logSaved); + const log = useStore($strudel_log_history); const { fontFamily } = useSettings(); - - useLogger( - useCallback((event) => { - setLog((log) => { - const newLog = getUpdatedLog(log, event); - logSaved = newLog; - return newLog; - }); - }, []), - ); return ( -