bryanlundberg / nexustimer Goto Github PK
View Code? Open in Web Editor NEWNexus Timer is a powerful unopinionated, minimalist training tool for SpeedCubing.
Home Page: https://nexustimer.pro
License: GNU General Public License v3.0
Nexus Timer is a powerful unopinionated, minimalist training tool for SpeedCubing.
Home Page: https://nexustimer.pro
License: GNU General Public License v3.0
Issue: The timer starts when you tap the buttons, contrary to the expected behavior.
To recreate the problem:
In timer settings:
A potential solution would be to assign an ID or reference to the quick action buttons component container. Then, in the timer logic, ensure that you are not tapping that element to avoid unintended timer activation.
Need an algorithms to generate SQ-1 and Megaminx scrambles
Expected output:
SQ1 -> (-5,0)/ (0,3)/ (3,0)/ (2,-4)/ (-2,-5)/ (5,-1)/ (-2,0)/ (0,-3)/ (0,-2)/ (6,0)/ (0,-1)/ (0,-5)/ (2,-2)/
Megaminx ->
R++ D-- R-- D++ R-- D++ R++ D-- R-- D-- U'
R++ D-- R-- D-- R++ D-- R-- D-- R++ D++ U
R++ D-- R-- D-- R-- D-- R++ D-- R-- D++ U
R++ D++ R++ D++ R++ D++ R-- D-- R++ D-- U'
R-- D++ R++ D-- R++ D-- R++ D++ R++ D-- U'
R++ D++ R-- D-- R++ D-- R-- D-- R++ D-- U'
R-- D++ R++ D++ R++ D++ R++ D-- R-- D++ U
Since dependent bot updated from 13.4.19 to 13.5.5 throwing an error at dev mode and at build
✓ Compiled /stats/page in 2.9s (1957 modules)
⨯ TypeError: responseHeaders.getSetCookie is not a function
at new ResponseCookies (webpack-internal:///(app-metadata-route)/./node_modules/next/dist/compiled/@edge-runtime/cookies/index.js:213:47)
at new NextResponse (webpack-internal:///(app-metadata-route)/./node_modules/next/dist/server/web/spec-extension/response.js:40:22)
at GET (webpack-internal:///(app-metadata-route)/./node_modules/next/dist/build/webpack/loaders/next-metadata-route-loader.js?page=%2Ffavicon.ico%2Froute&isDynamic=0!./src/app/favicon.ico?__next_metadata_route__:15:10)
at C:\Users\bryan\Documents\workspace\NexusTimer\node_modules\next\dist\compiled\next-server\app-route.runtime.dev.js:6:62505
at C:\Users\bryan\Documents\workspace\NexusTimer\node_modules\next\dist\server\lib\trace\tracer.js:121:36
at NoopContextManager.with (C:\Users\bryan\Documents\workspace\NexusTimer\node_modules\next\dist\compiled\@opentelemetry\api\index.js:1:7057)
at ContextAPI.with (C:\Users\bryan\Documents\workspace\NexusTimer\node_modules\next\dist\compiled\@opentelemetry\api\index.js:1:516)
at NoopTracer.startActiveSpan (C:\Users\bryan\Documents\workspace\NexusTimer\node_modules\next\dist\compiled\@opentelemetry\api\index.js:1:18086)
at ProxyTracer.startActiveSpan (C:\Users\bryan\Documents\workspace\NexusTimer\node_modules\next\dist\compiled\@opentelemetry\api\index.js:1:18847)
at C:\Users\bryan\Documents\workspace\NexusTimer\node_modules\next\dist\server\lib\trace\tracer.js:110:107
at NoopContextManager.with (C:\Users\bryan\Documents\workspace\NexusTimer\node_modules\next\dist\compiled\@opentelemetry\api\index.js:1:7057)
at ContextAPI.with (C:\Users\bryan\Documents\workspace\NexusTimer\node_modules\next\dist\compiled\@opentelemetry\api\index.js:1:516)
at NextTracerImpl.trace (C:\Users\bryan\Documents\workspace\NexusTimer\node_modules\next\dist\server\lib\trace\tracer.js:110:32)
at C:\Users\bryan\Documents\workspace\NexusTimer\node_modules\next\dist\compiled\next-server\app-route.runtime.dev.js:6:56147
at AsyncLocalStorage.run (node:async_hooks:330:14)
at Object.wrap (C:\Users\bryan\Documents\workspace\NexusTimer\node_modules\next\dist\compiled\next-server\app-route.runtime.dev.js:6:37057)
at C:\Users\bryan\Documents\workspace\NexusTimer\node_modules\next\dist\compiled\next-server\app-route.runtime.dev.js:6:53934
at AsyncLocalStorage.run (node:async_hooks:330:14)
at Object.wrap (C:\Users\bryan\Documents\workspace\NexusTimer\node_modules\next\dist\compiled\next-server\app-route.runtime.dev.js:6:36635)
at C:\Users\bryan\Documents\workspace\NexusTimer\node_modules\next\dist\compiled\next-server\app-route.runtime.dev.js:6:53896
at AsyncLocalStorage.run (node:async_hooks:330:14)
at eD.execute (C:\Users\bryan\Documents\workspace\NexusTimer\node_modules\next\dist\compiled\next-server\app-route.runtime.dev.js:6:53870)
at eD.handle (C:\Users\bryan\Documents\workspace\NexusTimer\node_modules\next\dist\compiled\next-server\app-route.runtime.dev.js:6:63748)
at doRender (C:\Users\bryan\Documents\workspace\NexusTimer\node_modules\next\dist\server\base-server.js:1217:56)
at cacheEntry.responseCache.get.incrementalCache.incrementalCache (C:\Users\bryan\Documents\workspace\NexusTimer\node_modules\next\dist\server\base-server.js:1446:34)
at ResponseCache.get (C:\Users\bryan\Documents\workspace\NexusTimer\node_modules\next\dist\server\response-cache\index.js:53:26)
at DevServer.renderToResponseWithComponentsImpl (C:\Users\bryan\Documents\workspace\NexusTimer\node_modules\next\dist\server\base-server.js:1361:53)
at C:\Users\bryan\Documents\workspace\NexusTimer\node_modules\next\dist\server\base-server.js:903:121
at NextTracerImpl.trace (C:\Users\bryan\Documents\workspace\NexusTimer\node_modules\next\dist\server\lib\trace\tracer.js:94:20)
at DevServer.renderToResponseWithComponents (C:\Users\bryan\Documents\workspace\NexusTimer\node_modules\next\dist\server\base-server.js:903:41)
at DevServer.renderPageComponent (C:\Users\bryan\Documents\workspace\NexusTimer\node_modules\next\dist\server\base-server.js:1600:35)
at async DevServer.renderToResponseImpl (C:\Users\bryan\Documents\workspace\NexusTimer\node_modules\next\dist\server\base-server.js:1638:32)
at async DevServer.pipeImpl (C:\Users\bryan\Documents\workspace\NexusTimer\node_modules\next\dist\server\base-server.js:826:25)
at async DevServer.handleCatchallRenderRequest (C:\Users\bryan\Documents\workspace\NexusTimer\node_modules\next\dist\server\next-server.js:623:13)
at async DevServer.handleRequestImpl (C:\Users\bryan\Documents\workspace\NexusTimer\node_modules\next\dist\server\base-server.js:728:17)
Solution lower down nextjs to v13.5.1, there is not happening
This proposal is open to adjustments and improvements in various aspects such as sizes, colors, transitions, hover effects, section variations, and overall design to achieve the best possible results.
The timer displays quick action buttons in manual mode, regardless of whether the feature is active or disabled.
Adding error handling for situations when the input file contains incorrect data. For now, a simple user alert should be sufficient and return the function before replace the localStorage.
Currently icons are type outline. I would like get a better effect switching to type solid when we are in the current page.
I facilitate the searching of the icons, their names are:
The Megaminx option is not in the current category list and is an official WCA category
The timer should not accept negative values, as dates can not be negative.
Main Timer should be calculated by overall session-category, and not session-cube.
We need to enhance the user experience by adding a feature in the menu settings that facilitates the export and import of user data. This feature will be especially valuable until we implement backend solutions for data management.
We are looking to design and create a toast component that integrates with our current style and enhances it.
Mobile position:
Tablet or desktop computer with reasonable width dimensions:
Here are the revised points:
Best design wins, we have time until create the triggers.
Our project contains too much spaghetti code, which hinders the full potential of Next.js and server components because we use the "use client" tag too early in pages due to the use of useState and useEffect. We need to improve organization and reduce components to its smallest size. Here's how to do it:
You can create a folder if you think can improve organization of the component.
If you are concerned about prop drilling, consider using Zustand to create a global state. It can help simplify data sharing across components. #72
Default color: neutral-400
Active tab: neutral-100
remove bg's
In the file src/app/translations, at line 1212, the definition is mixed with English.
We got a new function for formatting time in a nice way. As a result, we need update all existing components to utilize this function before rendering.
Enhance the timer with an optional 15-second cube inspection countdown, along with a +2 penalty for exceeding the inspection time, offering users a more realistic and competitive practice environment.
Currently, there is an issue with the timer. When a user stop the time and continues pressing the spacebar, the timer sets ready unintentionally for the next solve.
The expected behavior should be release the spacebar before proceeding to the next solve.
This issue is dedicated to improving language translations for our project. We need to either add new translations for missing languages or fix existing translations that may have errors or inconsistencies.
Its important for me reach a closer meaning but related to the thematic if that involve the use of other words
Currently .. prop drilling is messy
Create a confirmation modal that informs users of the number of solves to be deleted when they confirm the cube deletion. This action could potentially impact their personal best times.
We need to verify in the lightweight-charts
documentation if it's possible to pass a custom formatting function as a parameter.
currently users are unaware why aren't they able to add cube after selecting cube type
File: importDataFromFile.ts has everything needed to handle error using import feature.
Now, it is necessary to finish it, there is a function inside isValidCubesData()
, which should return 'true' or 'false' based on whether all the data in the imported .txt file complies with our designated data structure.
If you've chosen the "X" cube and decide to delete it, it remains selected on the Timer page. It should be reset to a null state until you select a new cube just in case you deleted the selected cube.
The Modal for editing a cube:
Changing the category from, for example, a 2x2 cube to a 7x7 cube can lead to skewed statistics. It's important to note that solves on a 2x2 cube are typically faster than those on a 7x7 cube. Therefore, altering the category may result in inaccurate best times, averages, and other statistical data.
This is not a bug; it's a deliberate design choice to ensure the integrity of your solving data.
The "Best" statistic is not accurately reflecting the lowest time; it should consistently display the lowest recorded time.
Allows users to customize the look and feel of their digital experience by selecting from a variety of pre-designed themes or creating their own unique themes, enhancing personalization and user engagement.
On large screens, the settings can currently only be toggled using the dedicated button. How about enhancing user experience by allowing closure of the settings when clicking anywhere outside the settings interface
Manual mode is an addition, allowing users the flexibility to run their sessions using external timers, such as a stackmat.
Need an input component
Logic saving times
Input Test Cases:
Entering "50" should convert to "0.50."
Entering "95" should convert to "0.95."
Entering "500" should convert to "5.00."
Entering "950" should convert to "9.50."
Entering "6138" should convert to "1:01.38."
Entering "5000" should convert to "50.00."
Entering "9500" should convert to "1:35.00."
Entering "135000" should convert to "1:35:00."
Entering "34292" should convert to "3:42.92."
Entering "69344" should convert to "7:33.44."
By implementing this change, we aim to ensure that users, including those with accessibility needs, can easily and accurately input times in the desired format.
UX can be improved by hiding all on-screen distractions, leaving only the running time visible.
We currently lack the ability to zoom in and out on lineal graphs within our application. Ubication: (Metrics/Category)
Need a function to convert time and improve user readability for big cubes example 93.03s to 1:33.03
If you search a cube in cubes section with 0 coincidences and the go to metrics page, state of cube is empty.
Users dont have access to start / stop the timer from mobile devices.
We need to hide the navigation bar during the solving process, as it has been broken since the recent project restructuring.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.