sendou.ink/remix.config.js
Kalle e7bbb565be
SendouQ (#1455)
* Tables

* Clocks

* Maplist preference selector

* Fix SSR

* Nav icon

* RankedOrScrim

* Map pool

* Create group

* Redirect logic

* Persist map pool

* Advance from preparing page

* Rename query

* Fix merge

* Fix migration order

* Seed groups

* Find looking groups SQL

* Renders something

* More UI work

* Back to 30min

* Likes/dislikes

* Always return own group

* Fix like order

* 3 tc/rm/cb -> 2

* Show only 3 weapons

* Pass group size

* Handle both liked and liked by same group

* Fix SQL

* Group preference frontend work

* Morphing

* Styling

* Don't show group controls if not manager

* Give/remove manager

* Leave group

* Leave with confirm

* Delete likes when morphing groups

* Clocks consistency

* Remove bad invariant

* Persist settings to local storage

* Fix initial value flashing

* Fix never resolving loading indicator

* REFRESH_GROUP

* Flip animations

* Tweaks

* Auto refresh logic

* Groups of 4 seed

* Reduce throwing

* Load full groups initial

* Create match

* Match UI initial

* Score reporter initial

* Push footer down on match page

* Score reporter knows when set ended

* Score reporting untested

* Show score after report

* Align better

* Look again with same group functionality

* More migrations

* Team on match page

* Show confirmer before reporting score

* Report weapons

* Report weapos again by admin + skill changing

* Handle no tiebreaker given to MapPool

* Remove unranked

* Remove support for "team id skill"

* no-wrap -> nowrap

* Preparing page work

* Use common GroupCard component

* Add some metas

* MemberAdder in looking page

* Fix GroupCard actions

* Fix SZ only map list including other modes

* Add season info

* Prompt login

* Joining team

* Manage group on preparing page

* Manage group on preparing page

* Seed past matches

* Add to seed

* No map list preference when full group + fix expiry

* Fix skill matchesCount calculation

* Tiers initial work

* Some progress on tiers

* Tiering logic

* MMR in group cards

* Name to challenge

* Team MMR

* Big team rank icons

* Adjust todos

* Match score report with confirm

* Allow regular members to report score

* Handle reporting weapons edge cases

* Add tier images

* Improve GroupCard spacing

* Refactor looking page

* Looking mobile UI

* Calculate skill only for current season

* Divide groups visually when reporting weapons

* Fix match page weapons sorting

* Add cache to user skills+tier calculation

* Admin report match score

* Initial leaderboard

* Cached leaderboard

* Weapon category lb's

* Populate SkillTeamUser in SendouQ

* Team leaderboard filtered down

* Add TODOs

* Seasons initlal

* Season weapons initial

* Weapons stylized

* Show rest weapons as +

* Hide peak if same as current

* Load matches SQL initial

* Season matches UI initial

* Take user id in account

* Add weapons

* Paginated matches

* Fix pages count logic

* Scroll top on data change

* Day headers for matches

* Link from user page to user seasons page

* Summarize maps + ui initial

* Map stats

* Player info tabs

* MMR chart

* Chart adjustments

* Handle basing team MMR on player MMR

* Set initial MMR

* Add info about discord to match page

* Season support to tournaments

* Get tournament skills as well for the graph

* WIP

* New team rating logic + misc other

* tiered -> tiered.server

* Update season starting time

* TODOs

* Add rules page

* Hide elements correctly when off-season

* Fix crash when only one player with skill

* How-to video

* Fix StartRank showing when not logged in

* Make user leaderboard the default

* Make Skill season non-nullable

* Add suggested pass to match

* Add rule

* identifierToUserIds helper

* Fix tiers not showing
2023-08-12 22:42:54 +03:00

119 lines
4.3 KiB
JavaScript

/**
* @type {import('@remix-run/dev').AppConfig}
*/
module.exports = {
ignoredRouteFiles: ["**/.*", "**/*.json", "**/components/*"],
cacheDirectory: process.env.NODE_ENV === "test" ? ".cache-test" : undefined,
routes: async (defineRoutes) => {
return defineRoutes((route) => {
route("/upload", "features/img-upload/routes/upload.tsx");
route("/upload/admin", "features/img-upload/routes/upload.admin.tsx");
route("/plans", "features/map-planner/routes/plans.tsx");
route("/analyzer", "features/build-analyzer/routes/analyzer.tsx");
route(
"/object-damage-calculator",
"features/object-damage-calculator/routes/object-damage-calculator.tsx"
);
route("/to/:id", "features/tournament/routes/to.$id.tsx", () => {
route("/to/:id", "features/tournament/routes/to.$id.index.tsx");
route(
"/to/:id/register",
"features/tournament/routes/to.$id.register.tsx"
);
route("/to/:id/teams", "features/tournament/routes/to.$id.teams.tsx");
route(
"/to/:id/teams/:tid",
"features/tournament/routes/to.$id.teams.$tid.tsx"
);
route("/to/:id/join", "features/tournament/routes/to.$id.join.tsx");
route("/to/:id/admin", "features/tournament/routes/to.$id.admin.tsx");
route("/to/:id/seeds", "features/tournament/routes/to.$id.seeds.tsx");
route("/to/:id/maps", "features/tournament/routes/to.$id.maps.tsx");
route(
"/to/:id/streams",
"features/tournament/routes/to.$id.streams.tsx"
);
route(
"/to/:id/subs",
"features/tournament-subs/routes/to.$id.subs.tsx"
);
route(
"/to/:id/subs/new",
"features/tournament-subs/routes/to.$id.subs.new.tsx"
);
route(
"/to/:id/brackets",
"features/tournament-bracket/routes/to.$id.brackets.tsx"
);
route(
"/to/:id/brackets/subscribe",
"features/tournament-bracket/routes/to.$id.brackets.subscribe.tsx"
);
route(
"/to/:id/matches/:mid",
"features/tournament-bracket/routes/to.$id.matches.$mid.tsx"
);
route(
"/to/:id/matches/:mid/subscribe",
"features/tournament-bracket/routes/to.$id.matches.$mid.subscribe.tsx"
);
});
route("/privacy-policy", "features/info/routes/privacy-policy.tsx");
route("/support", "features/info/routes/support.tsx");
route("/t", "features/team/routes/t.tsx");
route("/t/:customUrl", "features/team/routes/t.$customUrl.tsx");
route("/t/:customUrl/edit", "features/team/routes/t.$customUrl.edit.tsx");
route(
"/t/:customUrl/roster",
"features/team/routes/t.$customUrl.roster.tsx"
);
route("/t/:customUrl/join", "features/team/routes/t.$customUrl.join.tsx");
route("/vods", "features/vods/routes/vods.tsx");
route("/vods/new", "features/vods/routes/vods.new.tsx");
route("/vods/:id", "features/vods/routes/vods.$id.tsx");
route("/builds", "features/builds/routes/builds.tsx");
route("/builds/:slug", "features/builds/routes/builds.$slug.tsx");
route(
"/builds/:slug/stats",
"features/build-stats/routes/builds.$slug.stats.tsx"
);
route(
"/builds/:slug/popular",
"features/build-stats/routes/builds.$slug.popular.tsx"
);
route("/xsearch", "features/top-search/routes/xsearch.tsx");
route(
"/xsearch/player/:id",
"features/top-search/routes/xsearch.player.$id.tsx"
);
route("/leaderboards", "features/leaderboards/routes/leaderboards.tsx");
route("/links", "features/links/routes/links.tsx");
route("/art", "features/art/routes/art.tsx");
route("/art/new", "features/art/routes/art.new.tsx");
route("/q", "features/sendouq/routes/q.tsx");
route("/q/rules", "features/sendouq/routes/q.rules.tsx");
route("/q/looking", "features/sendouq/routes/q.looking.tsx");
route("/q/preparing", "features/sendouq/routes/q.preparing.tsx");
route("/q/match/:id", "features/sendouq/routes/q.match.$id.tsx");
});
},
serverModuleFormat: "cjs",
serverDependenciesToBundle: ["react-charts", "d3-time-format"],
future: {
v2_meta: true,
v2_normalizeFormMethod: true,
v2_dev: true,
},
};