lodestone-team / lodestone Goto Github PK
View Code? Open in Web Editor NEWA free, open source server hosting tool for Minecraft and other multiplayer games
Home Page: https://www.lodestone.cc/
License: GNU Affero General Public License v3.0
A free, open source server hosting tool for Minecraft and other multiplayer games
Home Page: https://www.lodestone.cc/
License: GNU Affero General Public License v3.0
Code the following, with a focus on CSS and layout, use placeholder data.
Refer to website design/dashboard/iteration 1
in figma for design
InstanceCard
component for the actual cards)
Expected result:
Have SetupNewCorePage.tsx
somehow automatically login to owner after setting up a core.
backend changes may be required?
Code this in a component named InstanceCard
using placeholder data.
Consider responsiveness while writing the css. These cards might change width in the future.
Implement all 3 colors for the status indicator, using different css class names
Implement the hover, pressed, and selected state for the button and the entire card as needed.
Implement the
the card has a green border when selected
Edit InputBox.tsx
and InputField.tsx
Either:
absolute
positiondiv
instead of the input
elementOr:
In any case, the result should look like this:
Here's another example: https://tailwindui.com/components/application-ui/forms/input-groups
Currently, first time setup experience for tauri is passable.
localhost:16662
exists and makes senseHowever, first time setup experience for web (lodestone.cc
) is not very good.
We can split the user into 2 groups: ones who want to manage a remote server, and ones who want to manage a local server.
Remote server:
localhost:16662
even though there's no core there.Core Connection Error
promptSelect Existing Core
page, which has no cores in the listLocal server:
GameIcon
in src/components/GameIcon.tsx
src/components/GameIcon.stories.tsx
InstanceCard
and Dashboard
with this game icon componentThe component should take a type : InstanceType
prop, and return an <img>
with one of the above images.
The InstanceType
type is in InstanceList.ts
See Label.stories.tsx
as an example for storybook
See readme for how to start the dev server for nextjs and the one for storybook
If the user is using our Tauri based desktop client, then the dashboard can use tauri commands to directly get the owner's token, setup owner account, etc.
SetupNewCorePage
to detect Tauri and use Tauri commands to setup?address=123.123.123.123
) is added to the user's list of cores automatically with no feedback.Have documentation that describes the purpose, scope, and architecture of the entire Lodestone project.
This helps to keep things organized as the project and the team grows.
There are 2 types of modal, "Dangerous" ones with a cancel and confirm, and a "Confirm" one, with just an ok button.
https://docs.craft.do/editor/d/29f71b6b-cf22-e814-7163-950f4fa38979/67ebe848-739a-44e8-83d5-6b8150effd85/b/562913e4-a8e2-4433-acb8-5e1faa99f7b7/Dec_20th/Modals#7FEAB0B1-5840-4CE6-84D2-DE3EEA085DFD
On Chrome, if the browser isn't full screen, one can't resize the notification panel.
Once the browser is full screen you can
Design the dashboard and the components in figma.
It's about time.
Currently we load fonts from fontshare's cdn
We should download the fonts and host it ourselves.
This way users who use our local Tauri desktop client won't require an internet connection
Do the following:
So we can get started
Tabs
component in src/
Create a Tabs
component and any subcomponents needed.
Tabs should be automatically generated from children
using their label
.
If this turns out to be hard, create a Tab
component with label
prop or find some other way.
IMPORTANT: only the selected tab should render, the rest should NOT display: none
, they shouldn't be rendered.
Example:
<Tabs>
<div label="Basic Settings">
</div>
<div label="Console">
</div>
</Tabs>
Regarding "link current tab with query in address":
Example:
?tab=basic-settings
opens the basic settings tab, clicking the console
tab changes address to ?tab=console
Refer to figma for design, the active tab should be displayed and highlighted in blue.
Add google analytics to the home page so we can track our traffic.
use something like https://gcanti.github.io/io-ts/ to do type guards
stop assuming API calls return the right type
Firefox currently does not support container queries, causing lots of layout to default to their mobile view.
Currently Tauri uses https://tauri.localhost/
and blocks http since that's mixed content.
This blocks API calls to external cores since those are http for now.
Related information:
Currently, if a form has an error, the error can only be displayed on one input field.
An example is the core select page. If network connection fail, there's no one field to blame.
We should use something like this, and put the error on top
A button's size changes when loading is set to true.
See a demo on storybook here: https://deploy-preview-14--lodestone-storybook.netlify.app/?path=/story/library-button--disabled&args=loading:true
The text should be hidden, a loading animation is shown instead, just like it currently does.
But the width of the button shouldn't change.
This can be accomplished by hiding instead of removing the text, then putting the loading animation on top using absolute
position.
Get rid of SelectCoreField
, make SelectField
more general with type templates.
Implement all the pages in Figma board "dashboard" page "login 1".
See figma and craft for details
Add toasts/snackbar.
I was thinking of either react-toastify
or radix ui.
need design on this too
Things that need toast:
CI should produce the executable and the installer.
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.