onecrayon / ashes.live Goto Github PK
View Code? Open in Web Editor NEWFrontend application for a fan-developed deckbuilder and community website for the card game Ashes Reborn
Frontend application for a fan-developed deckbuilder and community website for the card game Ashes Reborn
After processing images and uploading to CDN, make the releases public in the database.
If the deckbuilder is open, the share buttons don't reveal the link that allows importing into TTS/Ashteki.
When a player has configured their collection, it would be cool to highlight cards they own vs. ones they don't in deck listings.
Haven't figured out exactly what triggers this, but I'm noticing it a lot on iPad.
Users need to be able to log in and manage their accounts.
/v2/token
/players/new
(or could also be a dropdown/modal similar to Log In) that creates invite request via /v2/players/new
/players/me
/decks/mine
(placeholder, if this hasn't been implemented yet)/players/new/{token}
: Form accepting all options for /v2/players/new/{token}
to allow user to create their account/players/reset
: Link to just an email form that submits to /v2/reset
(or this could be part of the Log In modal)/players/reset/{token}
: password and confirm password fields that reset the user's password via /v2/reset/{token}
/players/me
: Main account editing page. Form controls to modify user info via /v2/players/me
. Should have a link to a separate page or modal control for updating the user's password via /v2/players/me/password
/players/{badge}
: public player profile (or a basic stand-in for it)needsAuth
page automatically shows the login modal and then takes you there after successful authCurrently if there are no eligible places for the Popper element to open that do not overlay the reference element, it will be placed in such a way that it overflows the page and causes a scrollbar (this is mainly an issue on mobile when the reference element is in the center of the screen; most easily triggered with cards that have conjurations on the card browser page). Per floating-ui/floating-ui#1202 we need a custom modifier that will instead shift the Popper element to overlay the reference element in this instance.
See https://popper.js.org/docs/v2/modifiers/#custom-modifiers for docs.
Not sure if this is affecting other browsers, but it's crazy annoying on Firefox.
Needs to be done, but pretty low priority at the moment. Includes listings and deck details page.
Or maybe one that shows the cards that will conflict between a set of decks.
For instance, see Undying Heart: https://ashes.live/cards/undying-heart/
We desperately need a toggle that will exclude cards from the card listing when the deckbuilder is open. Needs:
option
storemode=deckbuilder
and include_uniques_for=Phoenixborn%20Name
when fetching card listings to ensure that we don't get any conjurations, Phoenixborn, or other PB uniquesDon’t have a repro yet but scroll is getting permanently disabled on desktop, possibly when share box is open and tabbing to and from the page.
I'm not entirely sure how to go about this, but we need to trigger the scroll check for Card components after a newly filtered list of cards is loaded (because otherwise reused components end up without their images until the user scrolls).
Could we maybe watch the component's position on the page, and run a debounced scroll check when it changes? Needs research.
First Five controls need to be integrated into the standard deck view page. That way we can persist the changes we make to the currently-edited deck, allow people to publish suggestions for their public snapshots, and most importantly allow playing around with alternate First Fives for random public decks (without persistence).
Snapshot history view needs to provide a "diff" between any two consecutive snapshots (so that you can see at a glance what was added or removed). Should it be possible to copy an entire snapshot from the history into the currently edited deck?
Allow cloning arbitrary decks. I'm not sure if this needs to be something supported on the backend, or if I should just do it all on the front-end. Kind of on the fence over whether I want to maintain access to source decks for clones, or just call it good with cloning the current card list and losing the source deck link.
This only applies to the public deck listing (doesn't make any sense for user decks, because outside the admin user they will never return anything).
I need new elements under the navbar (right or left? Currently thinking left, to align with "Decks" item):
These are all exhibited in Firefox on mobile (but that's just Webkit behind the scenes).
touchstart
for the close event on document
doesn't workmousedown
on document
doesn't work. Clicks/taps are happily getting processed regardless of whether the events get canceled or notVisiting Harold's card, there is no card text. This is because an error is thrown, likely to be due to a parsing error due to the the card Hunter's Mask
and its apostrophe.
I'll be happy to have a look soon (likely tomorrow).
Has bonus words right now
The player profile page needs to be expanded. This needs to be based off the features/decks
branch. Here's the basic tasks, all of which apply to src/components/players/PlayerPublicProfile.vue
:
src/components/decks/DeckListing.vue
component/legacy/
URL suffix similar to the cards and deck pages, or via query string. Up to you.Some things to note:
/players/3000
. You can log in as this player using the email [email protected]
and password changeme
.It doesn't currently behave like a dropdown dialog even though it looks like one.
Searching for a card using the text box often submits before I finish 'typing'. And then doesn't match the cards on the partial word entry.
More of an issue on mobile than keyboard
Right now the interface makes it seem like the "show summons" button is an OR comparison like the rest of the types, but it's actually an AND comparison in addition to the types. Need to refine the UX to make this clear.
Dijon requested being able to use binder view for decks. I need to evaluate whether this would play nice with my plans for first five components, but if so it should be a relatively trivial change.
all
or mine
all
: allow selecting arbitrary releases (update query string!)mine
: allow updating the user's collection with the same interface as selecting individual releasesNotes:
Load the list of releases/collection when the user opens the interface element (no need for it on page load--unless maybe when they have a query string with releases? Or maybe just pass those through).
Should the popup interface element completely replace the "all" vs. "mine" filter? Since you could change its behavior by toggling whether you're showing your collection or filtering by all releases, which would imply the use of the filters (downside is you couldn't see at a glance which cards were showing in the filter bar).
Note: This task is paused at the moment because the API doesn't have support for deck cloning, and I've yet to decide how to handle preconstructed decks (might just make this a filter or a standalone page).
I need to build this out with more detail, but generally I need:
Currently parallel costs (often referred to as "split costs" in the codebase) are not accessible because the only indication that it's a parallel cost is the special styling. We need to expose text for these (preferably an "or" between the costs) that's hidden from normal visuals but available to screen readers.
Title element on a common ancestor instead of on the individual elements? Actual "or" text similar to the way dividers work? Something else?
This can be based off the main
branch; it shouldn't conflict with any of the recent work on the decks support.
Until the image loads, the placeholder div for it is way too big on mobile. Need to make sure the height is constrained for binder view.
I'm thinking maybe I'll start with just publishing (with private snapshots to come), since you can't view private snapshots yet, anyway. Downside to that is that we really need private snapshots to make the "share link" feature work properly, but again you need to be able to view them for that, so...
Standalone page? Mode for the deckbuilder sidebar?
This involves expanding the basic component src/components/shared/TextEditor.vue
.
target="_blank"
link to force a new tab below the editor box in small fontThe TextEditor component is introduced in my features/accounts
branch; if that's been merged in, then it will be in the features/decks
branch.
The legacy formatting helpers had the downside of breaking undo: prior to undertaking this task, it would be worth researching if there is a more modern way of doing this that supports undo.
The help information (and possibly content policies, if you go the modal route) will be the longest contents that the top-oriented modal has had to deal with yet. It will likely require better scrolling handling (some things to worry about: can we disable the body's scrolling/scrollbar? Can we enable scrolling just in the modal while the modal is open, if it hits the full height of the screen? How can we close the modal on mobile devices if it fills the entire screen--maybe add a close button at small sizes?).
Browser: Firefox, Firefox Mobile Emulator
Devices: Android, Desktop
Clicking a linked card within a card popup on mobile doesn't navigate and instead dismisses the popup. The links function as intended when I request the desktop site on mobile, so I suspect it is something with how specific event types are handled.
Update:
This doesn't seem to be a mobile-only issue, but more an issue of attempting to open a preview within another. The same behavior is exhibited on desktop when you hover over a link within a popup.
Add a new section under the resources for media on the homepage:
I need snapshot management UI once private snapshots are supported on the API. High level goals:
Next steps: #105
Newline is mistyped
During the draw cards step, you may draw 1 additional card.]n : Look at the top 2 cards of a target player's draw pile. Place 1 of those cards on the bottom of that draw pile, and the place the other card on the top of that draw pile.
A user reported that the "sign up" form showed a success message, but didn't actually trigger an email send when using mobile, but did work on the desktop. Need to try and reproduce.
This should be handled like the rest of the deck listing filters; i.e. should automatically be applied if loading the page with it in the URL, and should add/remove when the toggle is flipped. I'm torn on whether it should have a value or just be ?preconstructed
. Probably depends on whether having a boolean without a value in the query string works well or not.
/decks/share/{uuid}/
that outputs privately shared deck information (reuse DeckDetails? Though we don't have release information and similar)The sizing is completely wonky in list view. Need to revisit this layout when the deckbuilder is open to ensure that everything is shunted to its own line or something.
The backend now supports cloning decks viewed via the direct_share_uuid
if you pass it through as a query string in the clone request. We need to add support for this for private share pages.
I need to implement an interface for selecting First Fives, viewing stats about the deck's costs, etc. High level goals:
I didn't do this originally, because I like the idea of starting to edit a deck and immediately being able to add whatever cards grabbed your fancy in your current context. However, multiple people have been confused about how to add cards to a deck, so there's clearly a UX problem here (or it might be an overwhelmingly common use-case).
Once decks are published, I need to poll folks to see how people are using the deckbuilder and evaluate whether it should automatically open the card browser.
shows 1, should be 0
If you filter by something on the deck listing page, then click the Decks link in the header, the page does not clear the filters properly.
I think Tailwind/PurgeCSS is stripping out the toast styles; need to mark these as protected somehow.
I really don't like having an external CDN call for this. It needs to be in the project itself, preferably only including the SVG icons that are needed to cut down on the filesize.
This is likely happening for decks that have been created, but never closed from the deck-builder (since it shows up for decks that you edit from the "my decks" list).
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.