Commit graph

1178 commits

Author SHA1 Message Date
3c54653646 UX fixes for item support drawer
One fix was that `position: absolute` stuff was appearing over the drawer, including the item search clear button, oof!

Another fix was for a weird bug(?) in Apollo Client, see comments
2020-08-01 00:35:48 -07:00
0a9d736957 special color mutation actually working!
Note that there's a bug when switching back to the null case… when I look in the Apollo dev tools, it's definitely getting set in the cache correctly at the right time… but the query isn't updating for some reason? I'm hoping it's an Apollo bug that will fix itself someday with an upgrade!
2020-08-01 00:10:12 -07:00
a1d5669ac6 split item query & colors query in Support UI
My hope is that this can help with perf! The colors are very likely to be cached, and we don't need to re-request them from the server here!
2020-07-31 23:40:05 -07:00
cae2f1a977 Set up the special color mutation on the client?
Optimistic UI seems to just be like, not working… I'm seeing some Google results suggesting maybe just get to v3, which is a bit of upgrade work but might be worth it
2020-07-31 23:34:15 -07:00
2eb1c9b780 show the actual manual special color in support UI 2020-07-31 23:33:12 -07:00
f747bfb004 load special colors into support UI 2020-07-31 23:33:12 -07:00
b310f2334d draft UI for item support drawer
Special color is mocked out, but not backed by real data or actually changeable!
2020-07-31 23:33:12 -07:00
4aece9d703 fix PosePicker portal for Chakra UI Next
Oh oops, Chakra UI Next deprecates usePortal for the popover, so it wasn't escaping properly! Add a Portal component to let it escape the top area again!
2020-07-31 23:31:51 -07:00
7f8401ff4b fix apollo client 3 initial item load bug
I guess if you return a reference to an object that doesn't exist, it registers as null; and you need to provide the `true` here to declare that it _is_ real and should be treated as an _insufficiently_ defined object?
2020-07-31 23:21:34 -07:00
8211444d67 apollo client 3 initial upgrade
Some bugs remaining… outfit items don't show up at first, and item search and scrolling seems _very_ weird, wearing is broken too…
2020-07-31 23:10:34 -07:00
ffde7172de enable HTTP caching for pet appearances 2020-07-22 23:08:28 -07:00
9f11c83b20 extend the loading delay on homepage preview 2020-07-22 22:15:07 -07:00
5a9d2f6566 show a preview of color/species on the homepage
Using the newly extracted OutfitPreview! I'm really happy with how this turned out :3

It also makes the pageload after clicking Start super smooth, no spinner! Thanks Apollo cache!!
2020-07-22 22:07:45 -07:00
9164d89240 extract OutfitPreview into a shared component
I wanna use it in some other places soon, like a outfit-sharing page, and on the homepage to preview stuff
2020-07-22 21:29:57 -07:00
1d968436dc stop using hanger spinner on button it's too small 2020-07-22 20:56:36 -07:00
d30c3fc1b5 a cute new hanger spinner ^w^ 2020-07-20 22:18:39 -07:00
1cc7b3cbe1 more directory structure inside app 2020-07-20 21:41:26 -07:00
419a270df9 upgrade to Chakra v1
it's a preview version, but it has a feature I want, so let's get ahead of the curve!
2020-07-20 21:32:42 -07:00
ac12f6bb55 oops, fix isNc and stop loading items early! 2020-07-02 20:06:04 -07:00
3c4354d14b update getValidPetPoses snapshot 2020-07-02 14:46:04 -07:00
4c78abee96 fix bug resolving item fields under pet outfit 2020-07-02 14:33:47 -07:00
Matt Dunn-Rankin
7d0b17046b oops, fix regression in PosePicker 2020-06-24 21:24:55 -07:00
Matt Dunn-Rankin
7baa48c356 add item info links 2020-06-24 21:12:02 -07:00
Matt Dunn-Rankin
ade563ddcd server can read outfit data 2020-06-24 19:05:07 -07:00
Matt Dunn-Rankin
ad947985ea remove debug console calls 2020-06-06 13:46:47 -07:00
Matt Dunn-Rankin
462488a8f8 OutfitPreview waits for all new layers to load 2020-06-05 23:56:42 -07:00
Matt Dunn-Rankin
82078d20bb updated prod test snapshots 2020-05-31 16:08:26 -07:00
Matt Dunn-Rankin
03cde98eae fix bug querying depth on restricted zones 2020-05-31 16:08:17 -07:00
Matt Dunn-Rankin
caefc6610c fix bug loading species/color translation on pet 2020-05-31 16:00:59 -07:00
Matt Dunn-Rankin
ce81543957 add rarityIndex, isNc to API 2020-05-31 15:56:40 -07:00
Matt Dunn-Rankin
6f5e03da9c trim item search queries 2020-05-31 15:52:54 -07:00
Matt Dunn-Rankin
fb8ccee797 skip non-SWF (music) assets 2020-05-27 00:47:13 -07:00
Matt Dunn-Rankin
661eea0275 optimize homepage splash: resize, crush, srcset
original: 84kb
new 2x: 56k
new 1x: 19k
2020-05-23 13:59:56 -07:00
Matt Dunn-Rankin
29b9fe48c5 use PetService to determine the correct pose 2020-05-23 13:55:59 -07:00
Matt Dunn-Rankin
bcdd9af806 transition to closest valid pose for species/color 2020-05-23 13:23:24 -07:00
Matt Dunn-Rankin
75a0fe2e8c refactor e/gp pairs to pose enum 2020-05-23 12:47:06 -07:00
Matt Dunn-Rankin
772917fde6 add unknown and UC to valid pet poses 2020-05-23 11:48:53 -07:00
Matt Dunn-Rankin
4d6a6faf4c compact the svg logs 2020-05-23 11:32:05 -07:00
Matt Dunn-Rankin
62fc161013 upgrade to immer 6.0.8, remove bug workaround 2020-05-23 10:51:32 -07:00
Matt Dunn-Rankin
674107516c stop using javascript:void 0 as a placeholder 2020-05-19 18:30:54 -07:00
Matt Dunn-Rankin
1237ed0bb2 note on skipped query for future reference 2020-05-19 15:18:59 -07:00
Matt Dunn-Rankin
e9a490feca oops, we broke cacheRedirects, so item adds broke! 2020-05-19 15:14:12 -07:00
Matt Dunn-Rankin
94b05ad95b skip OutfitStateItems query if there are no items
Kinda surprised our cache redirect isn't good enough for this, but I guess Apollo can't differentiate between a confident empty list vs an uncertain empty list!
2020-05-19 14:57:25 -07:00
Matt Dunn-Rankin
b47392f17f add opnames for all queries 2020-05-19 14:48:54 -07:00
Matt Dunn-Rankin
c7707c8ee5 Show more realistic item list skeletons 2020-05-19 14:43:21 -07:00
Matt Dunn-Rankin
8e6c9a3d98 misc a11y fixes
both pages pass Lighthouse now, yay!
2020-05-18 01:21:46 -07:00
Matt Dunn-Rankin
3f379a819f add aria-label for search field 2020-05-18 01:09:27 -07:00
Matt Dunn-Rankin
f1d10f1c9e empty alt text for images 2020-05-18 01:08:56 -07:00
Matt Dunn-Rankin
cfabefa442 inline index.css, omit unused fonts, preload hints 2020-05-18 00:56:46 -07:00
Matt Dunn-Rankin
41e8e5f849 add webpackPreload hint for OutfitControls 2020-05-18 00:37:13 -07:00
Matt Dunn-Rankin
2fc0205304 code split the two pages 2020-05-18 00:20:48 -07:00
Matt Dunn-Rankin
db9dc3390b code-split OutfitControls 2020-05-18 00:11:18 -07:00
Matt Dunn-Rankin
543a12123d remove use-http to save 31kb 2020-05-17 23:44:33 -07:00
Matt Dunn-Rankin
2b8ed15bc1 remove react-helmet to save 12kb 2020-05-17 23:26:00 -07:00
Matt Dunn-Rankin
9c8a48a325 http caching for all color/species requests 2020-05-14 15:51:08 -07:00
Matt Dunn-Rankin
7847eddec3 less aggressive flash when color/species loads in 2020-05-14 15:50:59 -07:00
Matt Dunn-Rankin
e18aba17c6 add svgUrl for image layers 2020-05-11 21:19:34 -07:00
Matt Dunn-Rankin
072a95faba remove demo outfit, initialize state from url
it was causing a flash of content sometimes, oops!
2020-05-10 01:28:39 -07:00
Matt Dunn-Rankin
905b41aa7c use error color for invalid poses
I tweaked it to be a bit less aggressive of a red 😅
2020-05-10 01:21:24 -07:00
Matt Dunn-Rankin
f2d48cad84 remove error tooltip bc it's broken in prod
I also think it's not great a11y… need to think of a clear indicator!
2020-05-10 01:17:16 -07:00
Matt Dunn-Rankin
6b616d917d attempt to fix a prod-only tooltip bug 🤔
My current guess is that maybe showDelay={false} is infinite delay after prod compilation? Not sure why but it's my best guess!
2020-05-10 01:05:19 -07:00
Matt Dunn-Rankin
785d119324 set explicit page title on homepage 2020-05-10 01:01:14 -07:00
Matt Dunn-Rankin
9b4a677395 fix Safari outfit controls visual bug 2020-05-10 00:56:44 -07:00
Matt Dunn-Rankin
dcd8cc7a4a do pet loading on homepage, scrap reset modal 2020-05-10 00:54:23 -07:00
Matt Dunn-Rankin
385360ef10 basic home page! 2020-05-10 00:21:04 -07:00
Matt Dunn-Rankin
feccb5a46f misc image optimizations 2020-05-10 00:17:09 -07:00
Matt Dunn-Rankin
6757775fec change validPetPoses bit order, add dims to blob 2020-05-03 13:03:02 -07:00
Matt Dunn-Rankin
01c6cbcfdb reverse bit ordering in getValidPetPoses 2020-05-03 12:58:35 -07:00
Matt Dunn-Rankin
da0398b50b use bodyId, not speciesId, for pose transforms 2020-05-03 12:55:37 -07:00
Matt Dunn-Rankin
3f2f77c35d Merge branch 'valid-pet-poses' 2020-05-03 01:52:59 -07:00
Matt Dunn-Rankin
1bf33c14db use compressed validPetPoses to save network
it also has valid emotion/gp data in there too, which we'll use later!
2020-05-03 01:52:39 -07:00
Matt Dunn-Rankin
5d6b267992 fix outfit resets for emotion/gp 2020-05-03 01:08:43 -07:00
Matt Dunn-Rankin
04a851a138 new endpoint for blob of valid pet poses 2020-05-03 01:04:34 -07:00
Matt Dunn-Rankin
2214fe2815 remove flicker when opening the pose picker 2020-05-03 00:15:03 -07:00
Matt Dunn-Rankin
6c4569656f try to fix a compiler bug?
It looks like, in prod, our lambda fn here got optimized away, and I'm guessing it's because it starts with a comment now? I moved the comment down a line, fingers crossed!
2020-05-02 23:32:45 -07:00
Matt Dunn-Rankin
fc6258f6e9 fix a small mistake in OutfitPreview doAnimations 2020-05-02 23:18:20 -07:00
Matt Dunn-Rankin
a142df86cf return focus after PosePicker closes 2020-05-02 23:04:31 -07:00
Matt Dunn-Rankin
5ea717c391 better handling of missing poses 2020-05-02 22:59:30 -07:00
Matt Dunn-Rankin
2300fe4fbe add ID to pet appearance fragment for more caching 2020-05-02 22:41:01 -07:00
Matt Dunn-Rankin
2f8a4df27b fix PosePicker PetState debug output 2020-05-02 22:40:34 -07:00
Matt Dunn-Rankin
fb902e49f8 default emotion/gp for old outfit URLs 2020-05-02 22:39:25 -07:00
Matt Dunn-Rankin
f828686ac5 cache PetAppearance for quick pose switches 2020-05-02 22:37:52 -07:00
Matt Dunn-Rankin
6e1e0a5c0b show updated pet appearance in outfit preview! 2020-05-02 22:32:08 -07:00
Matt Dunn-Rankin
a064e5b471 move emotion / gender presentation to outfit state 2020-05-02 22:20:17 -07:00
Matt Dunn-Rankin
fae2a579c2 focus the radio when opening PosePicker 2020-05-02 22:07:47 -07:00
Matt Dunn-Rankin
752828b4b0 PosePicker is a radio! 2020-05-02 22:04:20 -07:00
Matt Dunn-Rankin
117a802835 zoom transforms for species poses!! 2020-05-02 21:04:54 -07:00
Matt Dunn-Rankin
d9b447bbb4 omit glitched pet states, add IDs 2020-05-02 20:48:32 -07:00
Matt Dunn-Rankin
da82dba294 PosePicker uses real appearance data, ish 2020-05-02 17:22:46 -07:00
Matt Dunn-Rankin
7dc01a6feb get multiple pet poses, gender/emotion data 2020-05-02 16:49:57 -07:00
Matt Dunn-Rankin
295a7ec8ba twemoji for pose picker 2020-05-02 16:03:23 -07:00
Matt Dunn-Rankin
4954d4adcf pose picker foundational UI! 2020-05-02 15:41:02 -07:00
Matt Dunn-Rankin
6b70df7e5e split and simplify OutfitPreview & OutfitControls 2020-05-02 13:41:52 -07:00
Matt Dunn-Rankin
fa92101b58 sync outfit url to location bar 2020-04-30 00:45:01 -07:00
Matt Dunn-Rankin
a3204cd2cf fix CSS bugs in Item 2020-04-30 00:30:27 -07:00
Matt Dunn-Rankin
17d72310bb start using asset proxy for item thumbnails
we're HTTPS now, baby!!
2020-04-30 00:02:00 -07:00
Matt Dunn-Rankin
839f9e4668 move outfit preview buttons to top 2020-04-28 01:19:03 -07:00
Matt Dunn-Rankin
08aef8d863 oops, fix item/itemgroup transition!
It broke because I refactored the CSSTransition into a wrapper component, which doesn't actually work for the react-transition-group API!
2020-04-27 10:14:13 -07:00
Matt Dunn-Rankin
7d4cedb146 oops, restricting the same zone is not conflict! 2020-04-26 23:26:27 -07:00
Matt Dunn-Rankin
47117d08a3 docs for OutfitResetModal 2020-04-26 01:45:17 -07:00
Matt Dunn-Rankin
821aa7f663 SpeciesColorPicker docs 2020-04-26 01:44:26 -07:00
Matt Dunn-Rankin
864e275769 SearchPanel docs & cleanup 2020-04-26 01:42:24 -07:00
Matt Dunn-Rankin
22d75d90c1 ItemsPanel docs + cleanup 2020-04-26 01:14:31 -07:00
Matt Dunn-Rankin
5ae60d91d2 docs for util! 2020-04-26 00:46:05 -07:00
Matt Dunn-Rankin
776bc33329 create ItemsAndSearchPanel, simplify search refs 2020-04-26 00:37:58 -07:00
Matt Dunn-Rankin
5371cbbd4a docs for App component 2020-04-25 23:57:11 -07:00
Matt Dunn-Rankin
01c3f1f2fa move most of the app into a src/app subdir
I think the index stuff was getting too easy to confuse for app code!
2020-04-25 23:52:20 -07:00
Matt Dunn-Rankin
0eae1679aa refactor ItemList.js -> Item.js, cleanups & docs 2020-04-25 23:51:07 -07:00
Matt Dunn-Rankin
c0790b11c7 make remove button contrast against item hover bg 2020-04-25 23:21:37 -07:00
Matt Dunn-Rankin
441f6550db move hacky .css files into emotion 2020-04-25 23:17:59 -07:00
Matt Dunn-Rankin
da3b690645 remove some leftover create-react-app boilerplate 2020-04-25 23:10:07 -07:00
Matt Dunn-Rankin
a3778d0467 put edit button back in the layout flow! 2020-04-25 23:06:54 -07:00
Matt Dunn-Rankin
800cccf61c move apollo-server-vercel into a lib folder 2020-04-25 23:04:49 -07:00
Matt Dunn-Rankin
56af62fe90 split query tests into separately runnable files! 2020-04-25 23:03:58 -07:00
Matt Dunn-Rankin
d2e530e1a0 add item descriptions; refactor to full snapshots 2020-04-25 22:40:28 -07:00
Matt Dunn-Rankin
1ddf97a953 new initial demo outfit 2020-04-25 22:13:55 -07:00
Matt Dunn-Rankin
e56bc2ec62 improve conflict detection w restricted zones 2020-04-25 22:12:05 -07:00
Matt Dunn-Rankin
1ca61215be use outfit name in page title 2020-04-25 20:54:18 -07:00
Matt Dunn-Rankin
152ba2cb17 show remove button on group hover, oops! 2020-04-25 20:48:48 -07:00
Matt Dunn-Rankin
96ec0bea90 scroll item to center during search keyboard nav 2020-04-25 20:44:59 -07:00
Matt Dunn-Rankin
7d23ca656b minor keyboard nav improvements 2020-04-25 20:27:04 -07:00
Matt Dunn-Rankin
a3cc035821 Merge branch 'items-refactor' 2020-04-25 20:22:07 -07:00
Matt Dunn-Rankin
ce8142cdbe fix bug with remove button in search 2020-04-25 20:21:51 -07:00
Matt Dunn-Rankin
17e78c5699 fix bug with duplicate search results 2020-04-25 20:16:24 -07:00
Matt Dunn-Rankin
8866b6bca6 checkboxes and keyboard nav for search view! 2020-04-25 20:06:51 -07:00
Matt Dunn-Rankin
40794d4e71 fix a bug with VisuallyHidden radios
The VisuallyHidden radios were position:absolute, which was leaking outside the scroll container. These keeps them inside their component, which will scroll them properly!
2020-04-25 19:10:55 -07:00
Matt Dunn-Rankin
7ecbaf82c2 fix padding for item and adjacent containers 2020-04-25 19:06:58 -07:00
Matt Dunn-Rankin
047dbb6327 use ItemContainer in skeleton, too 2020-04-25 19:02:30 -07:00
Matt Dunn-Rankin
6794093e8e fix hover/focus beahvior for remove button 2020-04-25 18:58:47 -07:00
Matt Dunn-Rankin
48da0903ca use radios for items! 2020-04-25 15:26:11 -07:00
Matt Dunn-Rankin
26244ea776 link sharing ^^ 2020-04-25 07:22:03 -07:00
Matt Dunn-Rankin
90ad9feb0c move neopets.com loading into server
the client stuff worked locally, but not in prod because you can't request http from https, even with cors set up correctly 😅
2020-04-25 06:50:34 -07:00
Matt Dunn-Rankin
b1a60e4e9d style tweaks & fixes for larger screens 2020-04-25 05:43:55 -07:00
Matt Dunn-Rankin
b3ead75772 minor style tweak 2020-04-25 05:39:07 -07:00
Matt Dunn-Rankin
3092cf9a51 add button to clear outfit 2020-04-25 05:38:15 -07:00
Matt Dunn-Rankin
177aedc09d outfit reset from pet name! 2020-04-25 05:29:27 -07:00
Matt Dunn-Rankin
aded259f1b even more robust handling of unfitting items 2020-04-25 04:46:40 -07:00
Matt Dunn-Rankin
bed3cf7227 prefer nicer pet states 2020-04-25 04:43:54 -07:00
Matt Dunn-Rankin
77568c7a2f graceful handling of items that don't fit the pet 2020-04-25 04:38:55 -07:00
Matt Dunn-Rankin
564cdef0ce species/color picker! 2020-04-25 04:33:05 -07:00
Matt Dunn-Rankin
d13420256c add species/color GQL queries 2020-04-25 03:42:05 -07:00
Matt Dunn-Rankin
9c9a2662a0 fix item skeletons for new spacing 2020-04-25 03:05:26 -07:00
Matt Dunn-Rankin
1b47b4b23f minor tweaks to download for degraded experience
prod doesn't use latest chakra, so the image loading is not smooth anymore... so we stopped using crossOrigin for the moment, which is awkward for Download
2020-04-25 03:02:11 -07:00
Matt Dunn-Rankin
2d84f2295b tweak download button styles 2020-04-25 02:32:41 -07:00
Matt Dunn-Rankin
e9a15857c1 more misc fixes 2020-04-25 02:20:23 -07:00
Matt Dunn-Rankin
49718a96f7 misc search ui improvements! 2020-04-25 02:18:03 -07:00
Matt Dunn-Rankin
5e3071db4f search infinite scroll! 2020-04-25 01:55:48 -07:00
Matt Dunn-Rankin
4045844e4b merge zones with the same name in the items UI 2020-04-25 00:46:25 -07:00
Matt Dunn-Rankin
8b8d67e5b1 restrict search results to items that fit! 2020-04-25 00:43:01 -07:00
Matt Dunn-Rankin
5264509b53 add item removal, with smooth transitions! 2020-04-25 00:22:49 -07:00
Matt Dunn-Rankin
d39c781f3f minor ui improvements to download! 2020-04-24 23:29:26 -07:00
Matt Dunn-Rankin
4f7c8b1332 Downloadable image, wowie!! 2020-04-24 23:13:28 -07:00
Matt Dunn-Rankin
66c6998c58 add support for cross-origin image requests
This is setup for exporting the image view!
2020-04-24 21:38:18 -07:00
Matt Dunn-Rankin
846b26f4c5 add more items to skeleton for search 2020-04-24 21:23:03 -07:00
Matt Dunn-Rankin
eac6b308cd Item search frontend + backend! 2020-04-24 21:18:44 -07:00
Matt Dunn-Rankin
66b0314990 preload preview data for closeted items 2020-04-24 20:28:40 -07:00
Matt Dunn-Rankin
f49c2552ce add support for unwearing items! 2020-04-24 20:19:26 -07:00
Matt Dunn-Rankin
a9d50bd0c3 stop using hardcoded items entirely! 2020-04-24 19:16:24 -07:00
Matt Dunn-Rankin
abfe854756 use item data to detect conflicts 2020-04-24 18:39:38 -07:00
Matt Dunn-Rankin
d0c698bf18 minor string format fix 2020-04-24 17:48:22 -07:00
Matt Dunn-Rankin
cf2d76023c safari layout fix 2020-04-24 00:46:24 -07:00
Matt Dunn-Rankin
d9e4b8cb59 smooth fade-in/out for layers! 2020-04-24 00:28:00 -07:00
Matt Dunn-Rankin
95eb3a56e0 misc outfit preview fixups 2020-04-23 23:52:06 -07:00
Matt Dunn-Rankin
da0e35d4e2 show loading spinner _over_ previous outfit state 2020-04-23 15:19:36 -07:00
Matt Dunn-Rankin
a076c1835a add restricted zone support 2020-04-23 14:44:06 -07:00
Matt Dunn-Rankin
dd5a7f9242 added pet appearance queries, using in frontend 2020-04-23 14:23:46 -07:00
Matt Dunn-Rankin
f5cb1d263c add query to outfit preview, but don't use it yet 2020-04-23 13:31:39 -07:00
Matt Dunn-Rankin
881be0c910 oops, add support for all-body item layers! 2020-04-23 13:10:42 -07:00
Matt Dunn-Rankin
5028c39ea9 set default graphql endpoint in playground 2020-04-23 01:12:52 -07:00
Matt Dunn-Rankin
ff8327981f enable playground in production :) 2020-04-23 01:09:17 -07:00
Matt Dunn-Rankin
4a61919649 add GQL support for appearance data! 2020-04-23 01:09:06 -07:00
Matt Dunn-Rankin
93507cc777 oh oops, use gql for search prototype too! 2020-04-22 16:36:08 -07:00
Matt Dunn-Rankin
8e8eea2b39 add cache redirects for the items query 2020-04-22 16:18:29 -07:00
Matt Dunn-Rankin
5074b17aba fix db connection closing in tests 2020-04-22 15:53:59 -07:00
Matt Dunn-Rankin
d1d98e2f72 add item list skeleton while loading 2020-04-22 15:24:38 -07:00
Matt Dunn-Rankin
7397243c7f load name and thumbnail from the db :o 2020-04-22 14:55:12 -07:00
Matt Dunn-Rankin
496d69dc95 got apollo server running as a vercel function! 2020-04-22 14:02:23 -07:00
Matt Dunn-Rankin
81a2306667 move to vercel now function api structure
I haven't really tested the API yet, because it's hard to query GraphQL directly, but I'll set up the client in a bit for it!
2020-04-22 13:03:32 -07:00