Rename upcomingVoting -> nextNonCompletedVoting

This commit is contained in:
Kalle 2022-06-12 23:19:16 +03:00
parent 1b2376a951
commit 52fea7fcc9
9 changed files with 26 additions and 23 deletions

View File

@ -1,7 +1,7 @@
import shuffle from "just-shuffle";
import invariant from "tiny-invariant";
import type { MonthYear } from "~/modules/plus-server";
import { upcomingVoting } from "~/modules/plus-server";
import { nextNonCompletedVoting } from "~/modules/plus-server";
import { atOrError } from "~/utils/arrays";
import { dateToDatabaseTimestamp } from "~/utils/dates";
import type { Unpacked } from "~/utils/types";
@ -204,7 +204,7 @@ export function usersForVoting(
) {
if (!loggedInUser || !loggedInUser.plusTier) return;
const { month, year } = upcomingVoting(new Date());
const { month, year } = nextNonCompletedVoting(new Date());
const members = plusServerMembersStm.all({
plusTier: loggedInUser.plusTier,
}) as Unpacked<UsersForVoting>["user"][];

View File

@ -1,6 +1,9 @@
import { faker } from "@faker-js/faker";
import invariant from "tiny-invariant";
import { lastCompletedVoting, upcomingVoting } from "~/modules/plus-server";
import {
lastCompletedVoting,
nextNonCompletedVoting,
} from "~/modules/plus-server";
import { db } from "~/db";
import { sql } from "~/db/sql";
import type { UpsertManyPlusVotesArgs } from "./models/plusVotes.server";
@ -72,6 +75,7 @@ function fakeUser() {
twitch: null,
twitter: null,
youtubeId: null,
// xxx: add bio
};
}
@ -146,7 +150,7 @@ function thisMonthsSuggestions() {
const usersInPlus = db.users
.findAll()
.filter((u) => u.plusTier && u.id !== 1); // exclude admin
const { month, year } = upcomingVoting(new Date());
const { month, year } = nextNonCompletedVoting(new Date());
for (let userId = 150; userId < 190; userId++) {
const amountOfSuggestions = faker.helpers.arrayElement([1, 1, 2, 3, 4]);

View File

@ -1,6 +1,6 @@
export {
lastCompletedVoting,
upcomingVoting,
nextNonCompletedVoting,
monthsVotingRange,
} from "./voting-time";

View File

@ -4,7 +4,7 @@ import { PLUS_DOWNVOTE, PLUS_UPVOTE } from "~/constants";
import type { UsersForVoting } from "~/db/models/plusVotes.server";
import type { User } from "~/db/types";
import type { PlusVoteFromFE } from "./types";
import { upcomingVoting } from "./voting-time";
import { nextNonCompletedVoting } from "./voting-time";
const LOCAL_STORAGE_KEY = "plusVoting";
@ -84,7 +84,7 @@ function useLoadInitialStateFromLocalStorageEffect({
>;
setVotes: React.Dispatch<React.SetStateAction<PlusVoteFromFE[]>>;
}) {
const { month, year } = upcomingVoting(new Date());
const { month, year } = nextNonCompletedVoting(new Date());
React.useEffect(() => {
const usersForVotingFromLocalStorage =
@ -181,7 +181,7 @@ function votesToLocalStorage({
usersForVoting?: UsersForVoting;
votes: PlusVoteFromFE[];
}) {
const { month, year } = upcomingVoting(new Date());
const { month, year } = nextNonCompletedVoting(new Date());
invariant(usersForVoting);
const toLocalStorage: VotingLocalStorageData = {

View File

@ -19,8 +19,7 @@ export function lastCompletedVoting(now: Date): MonthYear {
});
}
// xxx: rename... nextNonCompletedVoting ?
export function upcomingVoting(now: Date): MonthYear {
export function nextNonCompletedVoting(now: Date): MonthYear {
return nextMonth(lastCompletedVoting(now));
}

View File

@ -14,7 +14,7 @@ import { Button, LinkButton } from "~/components/Button";
import { Catcher } from "~/components/Catcher";
import { FormWithConfirm } from "~/components/FormWithConfirm";
import { TrashIcon } from "~/components/icons/Trash";
import { upcomingVoting } from "~/modules/plus-server";
import { nextNonCompletedVoting } from "~/modules/plus-server";
import { db } from "~/db";
import type * as plusSuggestions from "~/db/models/plusSuggestions.server";
import type { PlusSuggestion, User } from "~/db/types";
@ -50,7 +50,7 @@ export const action: ActionFunction = async ({ request }) => {
const user = await requireUser(request);
const suggestions = db.plusSuggestions.findVisibleForUser({
...upcomingVoting(new Date()),
...nextNonCompletedVoting(new Date()),
plusTier: user.plusTier,
});
@ -87,11 +87,11 @@ export const loader: LoaderFunction = async ({ request }) => {
return json<PlusSuggestionsLoaderData>({
suggestions: db.plusSuggestions.findVisibleForUser({
...upcomingVoting(new Date()),
...nextNonCompletedVoting(new Date()),
plusTier: user.plusTier,
}),
suggestedForTiers: db.plusSuggestions.tiersSuggestedFor({
...upcomingVoting(new Date()),
...nextNonCompletedVoting(new Date()),
userId: user.id,
}),
});

View File

@ -6,7 +6,7 @@ import { Button, LinkButton } from "~/components/Button";
import { Dialog } from "~/components/Dialog";
import { Redirect } from "~/components/Redirect";
import { PlUS_SUGGESTION_COMMENT_MAX_LENGTH } from "~/constants";
import { upcomingVoting } from "~/modules/plus-server";
import { nextNonCompletedVoting } from "~/modules/plus-server";
import { db } from "~/db";
import { requireUser, useUser } from "~/modules/auth";
import {
@ -34,7 +34,7 @@ export const action: ActionFunction = async ({ request }) => {
const user = await requireUser(request);
const suggestions = db.plusSuggestions.findVisibleForUser({
...upcomingVoting(new Date()),
...nextNonCompletedVoting(new Date()),
plusTier: user.plusTier,
});
@ -51,7 +51,7 @@ export const action: ActionFunction = async ({ request }) => {
db.plusSuggestions.create({
authorId: user.id,
...data,
...upcomingVoting(new Date()),
...nextNonCompletedVoting(new Date()),
});
return redirect(PLUS_SUGGESTIONS_PAGE);

View File

@ -26,7 +26,7 @@ import {
parseRequestFormData,
validate,
} from "~/utils/remix";
import { upcomingVoting } from "~/modules/plus-server";
import { nextNonCompletedVoting } from "~/modules/plus-server";
import { db } from "~/db";
import type { UserWithPlusTier } from "~/db/types";
import { ErrorMessage } from "~/components/ErrorMessage";
@ -52,7 +52,7 @@ export const action: ActionFunction = async ({ request }) => {
const user = await requireUser(request);
const suggestions = db.plusSuggestions.findVisibleForUser({
...upcomingVoting(new Date()),
...nextNonCompletedVoting(new Date()),
plusTier: user.plusTier,
});
@ -71,7 +71,7 @@ export const action: ActionFunction = async ({ request }) => {
suggestedId: suggested.id,
tier: data.tier,
text: data.text,
...upcomingVoting(new Date()),
...nextNonCompletedVoting(new Date()),
});
return redirect(PLUS_SUGGESTIONS_PAGE);

View File

@ -14,7 +14,7 @@ import { getUser, requireUser } from "~/modules/auth";
import type { PlusVoteFromFE } from "~/modules/plus-server";
import {
monthsVotingRange,
upcomingVoting,
nextNonCompletedVoting,
usePlusVoting,
} from "~/modules/plus-server";
import { isVotingActive } from "~/permissions";
@ -54,7 +54,7 @@ export const action: ActionFunction = async ({ request }) => {
score: PLUS_UPVOTE,
});
const { month, year } = upcomingVoting(new Date());
const { month, year } = nextNonCompletedVoting(new Date());
const { endDate } = monthsVotingRange({ month, year });
db.plusVotes.upsertMany(
votesForDb.map((vote) => ({
@ -113,7 +113,7 @@ export const loader: LoaderFunction = async ({ request }) => {
const user = await getUser(request);
const now = new Date();
const { startDate, endDate } = monthsVotingRange(upcomingVoting(now));
const { startDate, endDate } = monthsVotingRange(nextNonCompletedVoting(now));
if (!isVotingActive()) {
return json<PlusVotingLoaderData>({
type: "timeInfo",