From 3143788d19472b470e441f4196e56918c116a6d7 Mon Sep 17 00:00:00 2001 From: Dessalines <tyhou13@gmx.com> Date: Mon, 15 May 2023 15:53:29 -0400 Subject: [PATCH] Changing all bigints to numbers --- package.json | 2 +- src/shared/components/app/navbar.tsx | 18 +++---- .../components/comment/comment-node.tsx | 40 +++++++-------- src/shared/components/common/paginator.tsx | 10 ++-- .../components/community/communities.tsx | 8 +-- src/shared/components/community/community.tsx | 14 ++---- src/shared/components/community/sidebar.tsx | 2 +- src/shared/components/home/emojis-form.tsx | 49 ++++++++----------- src/shared/components/home/home.tsx | 18 +++---- src/shared/components/home/site-sidebar.tsx | 2 +- src/shared/components/modlog.tsx | 10 ++-- src/shared/components/person/inbox.tsx | 24 ++++----- .../components/person/person-details.tsx | 10 ++-- src/shared/components/person/profile.tsx | 8 +-- .../person/registration-applications.tsx | 12 ++--- src/shared/components/person/reports.tsx | 24 ++++----- src/shared/components/post/post-form.tsx | 4 +- src/shared/components/post/post-listing.tsx | 40 +++++++-------- src/shared/components/post/post-report.tsx | 2 +- src/shared/components/post/post.tsx | 2 +- src/shared/components/search.tsx | 18 +++---- src/shared/services/UserService.ts | 12 ++--- src/shared/utils.ts | 32 ++++++------ yarn.lock | 8 +-- 24 files changed, 175 insertions(+), 194 deletions(-) diff --git a/package.json b/package.json index c9a19c2..2f16b8d 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "inferno-server": "^8.1.1", "isomorphic-cookie": "^1.2.4", "jwt-decode": "^3.1.2", - "lemmy-js-client": "0.17.2-rc.16", + "lemmy-js-client": "0.17.2-rc.17", "markdown-it": "^13.0.1", "markdown-it-container": "^3.0.0", "markdown-it-emoji": "^2.0.2", diff --git a/src/shared/components/app/navbar.tsx b/src/shared/components/app/navbar.tsx index 448e92c..128d402 100644 --- a/src/shared/components/app/navbar.tsx +++ b/src/shared/components/app/navbar.tsx @@ -40,9 +40,9 @@ interface NavbarProps { interface NavbarState { expanded: boolean; - unreadInboxCount: bigint; - unreadReportCount: bigint; - unreadApplicationCount: bigint; + unreadInboxCount: number; + unreadReportCount: number; + unreadApplicationCount: number; showDropdown: boolean; onSiteBanner?(url: string): any; } @@ -54,9 +54,9 @@ export class Navbar extends Component<NavbarProps, NavbarState> { private unreadReportCountSub: Subscription; private unreadApplicationCountSub: Subscription; state: NavbarState = { - unreadInboxCount: 0n, - unreadReportCount: 0n, - unreadApplicationCount: 0n, + unreadInboxCount: 0, + unreadReportCount: 0, + unreadApplicationCount: 0, expanded: false, showDropdown: false, }; @@ -512,7 +512,7 @@ export class Navbar extends Component<NavbarProps, NavbarState> { unreadReportCount: data.post_reports + data.comment_reports + - (data.private_message_reports ?? 0n), + (data.private_message_reports ?? 0), }); this.sendReportUnread(); } else if (op == UserOperation.GetUnreadRegistrationApplicationCount) { @@ -528,7 +528,7 @@ export class Navbar extends Component<NavbarProps, NavbarState> { data.recipient_ids.includes(mui.local_user_view.local_user.id) ) { this.setState({ - unreadInboxCount: this.state.unreadInboxCount + 1n, + unreadInboxCount: this.state.unreadInboxCount + 1, }); this.sendUnreadCount(); notifyComment(data.comment_view, this.context.router); @@ -541,7 +541,7 @@ export class Navbar extends Component<NavbarProps, NavbarState> { UserService.Instance.myUserInfo?.local_user_view.person.id ) { this.setState({ - unreadInboxCount: this.state.unreadInboxCount + 1n, + unreadInboxCount: this.state.unreadInboxCount + 1, }); this.sendUnreadCount(); notifyPrivateMessage(data.private_message_view, this.context.router); diff --git a/src/shared/components/comment/comment-node.tsx b/src/shared/components/comment/comment-node.tsx index d6fe086..d68c5b3 100644 --- a/src/shared/components/comment/comment-node.tsx +++ b/src/shared/components/comment/comment-node.tsx @@ -84,9 +84,9 @@ interface CommentNodeState { showReportDialog: boolean; reportReason?: string; my_vote?: number; - score: bigint; - upvotes: bigint; - downvotes: bigint; + score: number; + upvotes: number; + downvotes: number; readLoading: boolean; saveLoading: boolean; } @@ -833,9 +833,7 @@ export class CommentNode extends Component<CommentNodeProps, CommentNodeState> { > {i18n.t("x_more_replies", { count: node.comment_view.counts.child_count, - formattedCount: numToSI( - BigInt(node.comment_view.counts.child_count) - ), + formattedCount: numToSI(node.comment_view.counts.child_count), })}{" "} â </button> @@ -1152,19 +1150,19 @@ export class CommentNode extends Component<CommentNodeProps, CommentNodeState> { if (myVote == 1) { this.setState({ - score: this.state.score - 1n, - upvotes: this.state.upvotes - 1n, + score: this.state.score - 1, + upvotes: this.state.upvotes - 1, }); } else if (myVote == -1) { this.setState({ - downvotes: this.state.downvotes - 1n, - upvotes: this.state.upvotes + 1n, - score: this.state.score + 2n, + downvotes: this.state.downvotes - 1, + upvotes: this.state.upvotes + 1, + score: this.state.score + 2, }); } else { this.setState({ - score: this.state.score + 1n, - upvotes: this.state.upvotes + 1n, + score: this.state.score + 1, + upvotes: this.state.upvotes + 1, }); } @@ -1189,19 +1187,19 @@ export class CommentNode extends Component<CommentNodeProps, CommentNodeState> { if (myVote == 1) { this.setState({ - downvotes: this.state.downvotes + 1n, - upvotes: this.state.upvotes - 1n, - score: this.state.score - 2n, + downvotes: this.state.downvotes + 1, + upvotes: this.state.upvotes - 1, + score: this.state.score - 2, }); } else if (myVote == -1) { this.setState({ - downvotes: this.state.downvotes - 1n, - score: this.state.score + 1n, + downvotes: this.state.downvotes - 1, + score: this.state.score + 1, }); } else { this.setState({ - downvotes: this.state.downvotes + 1n, - score: this.state.score - 1n, + downvotes: this.state.downvotes + 1, + score: this.state.score - 1, }); } @@ -1542,7 +1540,7 @@ export class CommentNode extends Component<CommentNodeProps, CommentNodeState> { post_id: i.props.node.comment_view.post.id, parent_id: i.props.node.comment_view.comment.id, max_depth: commentTreeMaxDepth, - limit: 999n, // TODO + limit: 999, // TODO type_: "All", saved_only: false, auth: myAuth(false), diff --git a/src/shared/components/common/paginator.tsx b/src/shared/components/common/paginator.tsx index 2c87757..75acde3 100644 --- a/src/shared/components/common/paginator.tsx +++ b/src/shared/components/common/paginator.tsx @@ -2,8 +2,8 @@ import { Component, linkEvent } from "inferno"; import { i18n } from "../../i18next"; interface PaginatorProps { - page: bigint; - onChange(val: bigint): any; + page: number; + onChange(val: number): any; } export class Paginator extends Component<PaginatorProps, any> { @@ -15,7 +15,7 @@ export class Paginator extends Component<PaginatorProps, any> { <div className="my-2"> <button className="btn btn-secondary mr-2" - disabled={this.props.page == 1n} + disabled={this.props.page == 1} onClick={linkEvent(this, this.handlePrev)} > {i18n.t("prev")} @@ -31,10 +31,10 @@ export class Paginator extends Component<PaginatorProps, any> { } handlePrev(i: Paginator) { - i.props.onChange(i.props.page - 1n); + i.props.onChange(i.props.page - 1); } handleNext(i: Paginator) { - i.props.onChange(i.props.page + 1n); + i.props.onChange(i.props.page + 1); } } diff --git a/src/shared/components/community/communities.tsx b/src/shared/components/community/communities.tsx index af7d827..2e147b8 100644 --- a/src/shared/components/community/communities.tsx +++ b/src/shared/components/community/communities.tsx @@ -34,7 +34,7 @@ import { ListingTypeSelect } from "../common/listing-type-select"; import { Paginator } from "../common/paginator"; import { CommunityLink } from "./community-link"; -const communityLimit = 50n; +const communityLimit = 50; interface CommunitiesState { listCommunitiesResponse?: ListCommunitiesResponse; @@ -45,7 +45,7 @@ interface CommunitiesState { interface CommunitiesProps { listingType: ListingType; - page: bigint; + page: number; } function getCommunitiesQueryParams() { @@ -280,14 +280,14 @@ export class Communities extends Component<any, CommunitiesState> { refetch(); } - handlePageChange(page: bigint) { + handlePageChange(page: number) { this.updateUrl({ page }); } handleListingTypeChange(val: ListingType) { this.updateUrl({ listingType: val, - page: 1n, + page: 1, }); } diff --git a/src/shared/components/community/community.tsx b/src/shared/components/community/community.tsx index 8a70378..af562c1 100644 --- a/src/shared/components/community/community.tsx +++ b/src/shared/components/community/community.tsx @@ -88,7 +88,7 @@ interface State { interface CommunityProps { dataType: DataType; sort: SortType; - page: bigint; + page: number; } function getCommunityQueryParams() { @@ -427,18 +427,18 @@ export class Community extends Component< ); } - handlePageChange(page: bigint) { + handlePageChange(page: number) { this.updateUrl({ page }); window.scrollTo(0, 0); } handleSortChange(sort: SortType) { - this.updateUrl({ sort, page: 1n }); + this.updateUrl({ sort, page: 1 }); window.scrollTo(0, 0); } handleDataTypeChange(dataType: DataType) { - this.updateUrl({ dataType, page: 1n }); + this.updateUrl({ dataType, page: 1 }); window.scrollTo(0, 0); } @@ -606,11 +606,7 @@ export class Community extends Component< .show_new_post_notifs; // Only push these if you're on the first page, you pass the nsfw check, and it isn't blocked - if ( - page === 1n && - nsfwCheck(post_view) && - !isPostBlocked(post_view) - ) { + if (page === 1 && nsfwCheck(post_view) && !isPostBlocked(post_view)) { this.state.posts.unshift(post_view); if (showPostNotifs) { notifyPost(post_view, this.context.router); diff --git a/src/shared/components/community/sidebar.tsx b/src/shared/components/community/sidebar.tsx index 4316755..a5eef75 100644 --- a/src/shared/components/community/sidebar.tsx +++ b/src/shared/components/community/sidebar.tsx @@ -185,7 +185,7 @@ export class Sidebar extends Component<SidebarProps, SidebarState> { <li className="list-inline-item badge badge-secondary"> {i18n.t("number_online", { count: this.props.online, - formattedCount: numToSI(BigInt(this.props.online)), + formattedCount: numToSI(this.props.online), })} </li> <li diff --git a/src/shared/components/home/emojis-form.tsx b/src/shared/components/home/emojis-form.tsx index 409e1c4..d63633b 100644 --- a/src/shared/components/home/emojis-form.tsx +++ b/src/shared/components/home/emojis-form.tsx @@ -35,7 +35,7 @@ interface EmojiFormState { siteRes: GetSiteResponse; customEmojis: CustomEmojiViewForm[]; loading: boolean; - page: bigint; + page: number; } interface CustomEmojiViewForm { @@ -46,7 +46,7 @@ interface CustomEmojiViewForm { alt_text: string; keywords: string; changed: boolean; - page: bigint; + page: number; } export class EmojiForm extends Component<any, EmojiFormState> { @@ -64,9 +64,9 @@ export class EmojiForm extends Component<any, EmojiFormState> { alt_text: x.custom_emoji.alt_text, keywords: x.keywords.map(x => x.keyword).join(" "), changed: false, - page: BigInt(1 + Math.floor(index / this.itemsPerPage)), + page: 1 + Math.floor(index / this.itemsPerPage), })), - page: 1n, + page: 1, }; state: EmojiFormState; private scrollRef: any = {}; @@ -125,10 +125,10 @@ export class EmojiForm extends Component<any, EmojiFormState> { <tbody> {this.state.customEmojis .slice( - Number((this.state.page - 1n) * BigInt(this.itemsPerPage)), + Number((this.state.page - 1) * this.itemsPerPage), Number( - (this.state.page - 1n) * BigInt(this.itemsPerPage) + - BigInt(this.itemsPerPage) + (this.state.page - 1) * this.itemsPerPage + + this.itemsPerPage ) ) .map((cv, index) => ( @@ -304,7 +304,7 @@ export class EmojiForm extends Component<any, EmojiFormState> { else return i18n.t("custom_emoji_save_validation"); } - handlePageChange(page: bigint) { + handlePageChange(page: number) { this.setState({ page: page }); } @@ -327,10 +327,9 @@ export class EmojiForm extends Component<any, EmojiFormState> { ) { let custom_emojis = [...props.form.state.customEmojis]; let pagedIndex = - (props.form.state.page - 1n) * BigInt(props.form.itemsPerPage) + - BigInt(props.index); + (props.form.state.page - 1) * props.form.itemsPerPage + props.index; let item = { - ...props.form.state.customEmojis[Number(pagedIndex)], + ...props.form.state.customEmojis[pagedIndex], category: event.target.value, changed: true, }; @@ -344,10 +343,9 @@ export class EmojiForm extends Component<any, EmojiFormState> { ) { let custom_emojis = [...props.form.state.customEmojis]; let pagedIndex = - (props.form.state.page - 1n) * BigInt(props.form.itemsPerPage) + - BigInt(props.index); + (props.form.state.page - 1) * props.form.itemsPerPage + props.index; let item = { - ...props.form.state.customEmojis[Number(pagedIndex)], + ...props.form.state.customEmojis[pagedIndex], shortcode: event.target.value, changed: true, }; @@ -361,10 +359,9 @@ export class EmojiForm extends Component<any, EmojiFormState> { ) { let custom_emojis = [...props.form.state.customEmojis]; let pagedIndex = - (props.form.state.page - 1n) * BigInt(props.form.itemsPerPage) + - BigInt(props.index); + (props.form.state.page - 1) * props.form.itemsPerPage + props.index; let item = { - ...props.form.state.customEmojis[Number(pagedIndex)], + ...props.form.state.customEmojis[pagedIndex], image_url: props.overrideValue ?? event.target.value, changed: true, }; @@ -378,10 +375,9 @@ export class EmojiForm extends Component<any, EmojiFormState> { ) { let custom_emojis = [...props.form.state.customEmojis]; let pagedIndex = - (props.form.state.page - 1n) * BigInt(props.form.itemsPerPage) + - BigInt(props.index); + (props.form.state.page - 1) * props.form.itemsPerPage + props.index; let item = { - ...props.form.state.customEmojis[Number(pagedIndex)], + ...props.form.state.customEmojis[pagedIndex], alt_text: event.target.value, changed: true, }; @@ -395,10 +391,9 @@ export class EmojiForm extends Component<any, EmojiFormState> { ) { let custom_emojis = [...props.form.state.customEmojis]; let pagedIndex = - (props.form.state.page - 1n) * BigInt(props.form.itemsPerPage) + - BigInt(props.index); + (props.form.state.page - 1) * props.form.itemsPerPage + props.index; let item = { - ...props.form.state.customEmojis[Number(pagedIndex)], + ...props.form.state.customEmojis[pagedIndex], keywords: event.target.value, changed: true, }; @@ -412,8 +407,7 @@ export class EmojiForm extends Component<any, EmojiFormState> { cv: CustomEmojiViewForm; }) { let pagedIndex = - (props.form.state.page - 1n) * BigInt(props.form.itemsPerPage) + - BigInt(props.index); + (props.form.state.page - 1) * props.form.itemsPerPage + props.index; if (props.cv.id != 0) { const deleteForm: DeleteCustomEmoji = { id: props.cv.id, @@ -458,9 +452,8 @@ export class EmojiForm extends Component<any, EmojiFormState> { handleAddEmojiClick(form: EmojiForm, event: any) { event.preventDefault(); let custom_emojis = [...form.state.customEmojis]; - const page = BigInt( - 1 + Math.floor(form.state.customEmojis.length / form.itemsPerPage) - ); + const page = + 1 + Math.floor(form.state.customEmojis.length / form.itemsPerPage); let item: CustomEmojiViewForm = { id: 0, shortcode: "", diff --git a/src/shared/components/home/home.tsx b/src/shared/components/home/home.tsx index 0cd5b98..52a8212 100644 --- a/src/shared/components/home/home.tsx +++ b/src/shared/components/home/home.tsx @@ -100,7 +100,7 @@ interface HomeProps { listingType: ListingType; dataType: DataType; sort: SortType; - page: bigint; + page: number; } function getDataTypeFromQuery(type?: string): DataType { @@ -324,7 +324,7 @@ export class Home extends Component<any, HomeState> { const type_ = getListingTypeFromQuery(listingType); const sort = getSortTypeFromQuery(urlSort); - const page = urlPage ? BigInt(urlPage) : 1n; + const page = urlPage ? Number(urlPage) : 1; const promises: Promise<any>[] = []; @@ -700,23 +700,23 @@ export class Home extends Component<any, HomeState> { i.setState({ subscribedCollapsed: !i.state.subscribedCollapsed }); } - handlePageChange(page: bigint) { + handlePageChange(page: number) { this.updateUrl({ page }); window.scrollTo(0, 0); } handleSortChange(val: SortType) { - this.updateUrl({ sort: val, page: 1n }); + this.updateUrl({ sort: val, page: 1 }); window.scrollTo(0, 0); } handleListingTypeChange(val: ListingType) { - this.updateUrl({ listingType: val, page: 1n }); + this.updateUrl({ listingType: val, page: 1 }); window.scrollTo(0, 0); } handleDataTypeChange(val: DataType) { - this.updateUrl({ dataType: val, page: 1n }); + this.updateUrl({ dataType: val, page: 1 }); window.scrollTo(0, 0); } @@ -765,11 +765,7 @@ export class Home extends Component<any, HomeState> { const { post_view } = wsJsonToRes<PostResponse>(msg); // Only push these if you're on the first page, you pass the nsfw check, and it isn't blocked - if ( - page === 1n && - nsfwCheck(post_view) && - !isPostBlocked(post_view) - ) { + if (page === 1 && nsfwCheck(post_view) && !isPostBlocked(post_view)) { const mui = UserService.Instance.myUserInfo; const showPostNotifs = mui?.local_user_view.local_user.show_new_post_notifs; diff --git a/src/shared/components/home/site-sidebar.tsx b/src/shared/components/home/site-sidebar.tsx index 0592f93..23fbf40 100644 --- a/src/shared/components/home/site-sidebar.tsx +++ b/src/shared/components/home/site-sidebar.tsx @@ -105,7 +105,7 @@ export class SiteSidebar extends Component<SiteSidebarProps, SiteSidebarState> { <li className="list-inline-item badge badge-secondary"> {i18n.t("number_online", { count: online, - formattedCount: numToSI(BigInt(online)), + formattedCount: numToSI(online), })} </li> <li diff --git a/src/shared/components/modlog.tsx b/src/shared/components/modlog.tsx index 922afc0..ef28816 100644 --- a/src/shared/components/modlog.tsx +++ b/src/shared/components/modlog.tsx @@ -111,7 +111,7 @@ interface ModlogState { } interface ModlogProps { - page: bigint; + page: number; userId?: number | null; modId?: number | null; actionType: ModlogActionType; @@ -868,20 +868,20 @@ export class Modlog extends Component< handleFilterActionChange(i: Modlog, event: any) { i.updateUrl({ actionType: event.target.value as ModlogActionType, - page: 1n, + page: 1, }); } - handlePageChange(page: bigint) { + handlePageChange(page: number) { this.updateUrl({ page }); } handleUserChange(option: Choice) { - this.updateUrl({ userId: getIdFromString(option.value) ?? null, page: 1n }); + this.updateUrl({ userId: getIdFromString(option.value) ?? null, page: 1 }); } handleModChange(option: Choice) { - this.updateUrl({ modId: getIdFromString(option.value) ?? null, page: 1n }); + this.updateUrl({ modId: getIdFromString(option.value) ?? null, page: 1 }); } handleSearchUsers = debounce(async (text: string) => { diff --git a/src/shared/components/person/inbox.tsx b/src/shared/components/person/inbox.tsx index 10af488..a399779 100644 --- a/src/shared/components/person/inbox.tsx +++ b/src/shared/components/person/inbox.tsx @@ -84,7 +84,7 @@ interface InboxState { messages: PrivateMessageView[]; combined: ReplyType[]; sort: CommentSortType; - page: bigint; + page: number; siteRes: GetSiteResponse; loading: boolean; } @@ -100,7 +100,7 @@ export class Inbox extends Component<any, InboxState> { messages: [], combined: [], sort: "New", - page: 1n, + page: 1, siteRes: this.isoData.site_res, loading: true, }; @@ -471,18 +471,18 @@ export class Inbox extends Component<any, InboxState> { ); } - handlePageChange(page: bigint) { + handlePageChange(page: number) { this.setState({ page }); this.refetch(); } handleUnreadOrAllChange(i: Inbox, event: any) { - i.setState({ unreadOrAll: Number(event.target.value), page: 1n }); + i.setState({ unreadOrAll: Number(event.target.value), page: 1 }); i.refetch(); } handleMessageTypeChange(i: Inbox, event: any) { - i.setState({ messageType: Number(event.target.value), page: 1n }); + i.setState({ messageType: Number(event.target.value), page: 1 }); i.refetch(); } @@ -497,7 +497,7 @@ export class Inbox extends Component<any, InboxState> { let repliesForm: GetReplies = { sort: "New", unread_only: true, - page: 1n, + page: 1, limit: fetchLimit, auth, }; @@ -506,7 +506,7 @@ export class Inbox extends Component<any, InboxState> { let personMentionsForm: GetPersonMentions = { sort, unread_only: true, - page: 1n, + page: 1, limit: fetchLimit, auth, }; @@ -514,7 +514,7 @@ export class Inbox extends Component<any, InboxState> { let privateMessagesForm: GetPrivateMessages = { unread_only: true, - page: 1n, + page: 1, limit: fetchLimit, auth, }; @@ -565,7 +565,7 @@ export class Inbox extends Component<any, InboxState> { } handleSortChange(val: CommentSortType) { - this.setState({ sort: val, page: 1n }); + this.setState({ sort: val, page: 1 }); this.refetch(); } @@ -579,7 +579,7 @@ export class Inbox extends Component<any, InboxState> { ); i.setState({ replies: [], mentions: [], messages: [] }); i.setState({ combined: i.buildCombined() }); - UserService.Instance.unreadInboxCountSub.next(0n); + UserService.Instance.unreadInboxCountSub.next(0); window.scrollTo(0, 0); i.setState(i.state); } @@ -588,9 +588,9 @@ export class Inbox extends Component<any, InboxState> { sendUnreadCount(read: boolean) { let urcs = UserService.Instance.unreadInboxCountSub; if (read) { - urcs.next(urcs.getValue() - 1n); + urcs.next(urcs.getValue() - 1); } else { - urcs.next(urcs.getValue() + 1n); + urcs.next(urcs.getValue() + 1); } } diff --git a/src/shared/components/person/person-details.tsx b/src/shared/components/person/person-details.tsx index 910ea98..d1ca4e3 100644 --- a/src/shared/components/person/person-details.tsx +++ b/src/shared/components/person/person-details.tsx @@ -18,13 +18,13 @@ interface PersonDetailsProps { admins: PersonView[]; allLanguages: Language[]; siteLanguages: number[]; - page: bigint; - limit: bigint; + page: number; + limit: number; sort: SortType; enableDownvotes: boolean; enableNsfw: boolean; view: PersonDetailsView; - onPageChange(page: bigint): bigint | any; + onPageChange(page: number): number | any; } enum ItemEnum { @@ -36,7 +36,7 @@ type ItemType = { type_: ItemEnum; view: CommentView | PostView; published: string; - score: bigint; + score: number; }; export class PersonDetails extends Component<PersonDetailsProps, any> { @@ -199,7 +199,7 @@ export class PersonDetails extends Component<PersonDetailsProps, any> { ); } - handlePageChange(val: bigint) { + handlePageChange(val: number) { this.props.onPageChange(val); } } diff --git a/src/shared/components/person/profile.tsx b/src/shared/components/person/profile.tsx index b38dae9..42c7c30 100644 --- a/src/shared/components/person/profile.tsx +++ b/src/shared/components/person/profile.tsx @@ -81,7 +81,7 @@ interface ProfileState { interface ProfileProps { view: PersonDetailsView; sort: SortType; - page: bigint; + page: number; } function getProfileQueryParams() { @@ -645,18 +645,18 @@ export class Profile extends Component< this.fetchUserData(); } - handlePageChange(page: bigint) { + handlePageChange(page: number) { this.updateUrl({ page }); } handleSortChange(sort: SortType) { - this.updateUrl({ sort, page: 1n }); + this.updateUrl({ sort, page: 1 }); } handleViewChange(i: Profile, event: any) { i.updateUrl({ view: PersonDetailsView[event.target.value], - page: 1n, + page: 1, }); } diff --git a/src/shared/components/person/registration-applications.tsx b/src/shared/components/person/registration-applications.tsx index cd99bcc..1816741 100644 --- a/src/shared/components/person/registration-applications.tsx +++ b/src/shared/components/person/registration-applications.tsx @@ -37,7 +37,7 @@ interface RegistrationApplicationsState { listRegistrationApplicationsResponse?: ListRegistrationApplicationsResponse; siteRes: GetSiteResponse; unreadOrAll: UnreadOrAll; - page: bigint; + page: number; loading: boolean; } @@ -50,7 +50,7 @@ export class RegistrationApplications extends Component< state: RegistrationApplicationsState = { siteRes: this.isoData.site_res, unreadOrAll: UnreadOrAll.Unread, - page: 1n, + page: 1, loading: true, }; @@ -188,11 +188,11 @@ export class RegistrationApplications extends Component< } handleUnreadOrAllChange(i: RegistrationApplications, event: any) { - i.setState({ unreadOrAll: Number(event.target.value), page: 1n }); + i.setState({ unreadOrAll: Number(event.target.value), page: 1 }); i.refetch(); } - handlePageChange(page: bigint) { + handlePageChange(page: number) { this.setState({ page }); this.refetch(); } @@ -204,7 +204,7 @@ export class RegistrationApplications extends Component< if (auth) { let form: ListRegistrationApplications = { unread_only: true, - page: 1n, + page: 1, limit: fetchLimit, auth, }; @@ -254,7 +254,7 @@ export class RegistrationApplications extends Component< ); let uacs = UserService.Instance.unreadApplicationCountSub; // Minor bug, where if the application switches from deny to approve, the count will still go down - uacs.next(uacs.getValue() - 1n); + uacs.next(uacs.getValue() - 1); this.setState(this.state); } } diff --git a/src/shared/components/person/reports.tsx b/src/shared/components/person/reports.tsx index 8fc3081..0af56b5 100644 --- a/src/shared/components/person/reports.tsx +++ b/src/shared/components/person/reports.tsx @@ -75,7 +75,7 @@ interface ReportsState { messageType: MessageType; combined: ItemType[]; siteRes: GetSiteResponse; - page: bigint; + page: number; loading: boolean; } @@ -86,7 +86,7 @@ export class Reports extends Component<any, ReportsState> { unreadOrAll: UnreadOrAll.Unread, messageType: MessageType.All, combined: [], - page: 1n, + page: 1, siteRes: this.isoData.site_res, loading: true, }; @@ -422,18 +422,18 @@ export class Reports extends Component<any, ReportsState> { ); } - handlePageChange(page: bigint) { + handlePageChange(page: number) { this.setState({ page }); this.refetch(); } handleUnreadOrAllChange(i: Reports, event: any) { - i.setState({ unreadOrAll: Number(event.target.value), page: 1n }); + i.setState({ unreadOrAll: Number(event.target.value), page: 1 }); i.refetch(); } handleMessageTypeChange(i: Reports, event: any) { - i.setState({ messageType: Number(event.target.value), page: 1n }); + i.setState({ messageType: Number(event.target.value), page: 1 }); i.refetch(); } @@ -441,7 +441,7 @@ export class Reports extends Component<any, ReportsState> { let promises: Promise<any>[] = []; let unresolved_only = true; - let page = 1n; + let page = 1; let limit = fetchLimit; let auth = req.auth; @@ -553,9 +553,9 @@ export class Reports extends Component<any, ReportsState> { ); let urcs = UserService.Instance.unreadReportCountSub; if (data.post_report_view.post_report.resolved) { - urcs.next(urcs.getValue() - 1n); + urcs.next(urcs.getValue() - 1); } else { - urcs.next(urcs.getValue() + 1n); + urcs.next(urcs.getValue() + 1); } this.setState(this.state); } else if (op == UserOperation.ResolveCommentReport) { @@ -566,9 +566,9 @@ export class Reports extends Component<any, ReportsState> { ); let urcs = UserService.Instance.unreadReportCountSub; if (data.comment_report_view.comment_report.resolved) { - urcs.next(urcs.getValue() - 1n); + urcs.next(urcs.getValue() - 1); } else { - urcs.next(urcs.getValue() + 1n); + urcs.next(urcs.getValue() + 1); } this.setState(this.state); } else if (op == UserOperation.ResolvePrivateMessageReport) { @@ -579,9 +579,9 @@ export class Reports extends Component<any, ReportsState> { ); let urcs = UserService.Instance.unreadReportCountSub; if (data.private_message_report_view.private_message_report.resolved) { - urcs.next(urcs.getValue() - 1n); + urcs.next(urcs.getValue() - 1); } else { - urcs.next(urcs.getValue() + 1n); + urcs.next(urcs.getValue() + 1); } this.setState(this.state); } diff --git a/src/shared/components/post/post-form.tsx b/src/shared/components/post/post-form.tsx index e7edf22..ef16837 100644 --- a/src/shared/components/post/post-form.tsx +++ b/src/shared/components/post/post-form.tsx @@ -509,7 +509,7 @@ export class PostForm extends Component<PostFormProps, PostFormState> { type_: "Url", sort: "TopAll", listing_type: "All", - page: 1n, + page: 1, limit: trendingFetchLimit, auth: myAuth(false), }; @@ -539,7 +539,7 @@ export class PostForm extends Component<PostFormProps, PostFormState> { sort: "TopAll", listing_type: "All", community_id: this.state.form.community_id, - page: 1n, + page: 1, limit: trendingFetchLimit, auth: myAuth(false), }; diff --git a/src/shared/components/post/post-listing.tsx b/src/shared/components/post/post-listing.tsx index b3a93c0..1096b73 100644 --- a/src/shared/components/post/post-listing.tsx +++ b/src/shared/components/post/post-listing.tsx @@ -80,9 +80,9 @@ interface PostListingState { showReportDialog: boolean; reportReason?: string; my_vote?: number; - score: bigint; - upvotes: bigint; - downvotes: bigint; + score: number; + upvotes: number; + downvotes: number; } interface PostListingProps { @@ -652,9 +652,9 @@ export class PostListing extends Component<PostListingProps, PostListingState> { ); } - get unreadCount(): bigint | undefined { + get unreadCount(): number | undefined { let pv = this.props.post_view; - return pv.unread_comments == pv.counts.comments || pv.unread_comments == 0n + return pv.unread_comments == pv.counts.comments || pv.unread_comments == 0 ? undefined : pv.unread_comments; } @@ -691,7 +691,7 @@ export class PostListing extends Component<PostListingProps, PostListingState> { {showScores() && ( <span className={classNames("ml-2", { - invisible: this.state.downvotes === 0n, + invisible: this.state.downvotes === 0, })} > {numToSI(this.state.downvotes)} @@ -1311,19 +1311,19 @@ export class PostListing extends Component<PostListingProps, PostListingState> { if (myVote == 1) { this.setState({ - score: this.state.score - 1n, - upvotes: this.state.upvotes - 1n, + score: this.state.score - 1, + upvotes: this.state.upvotes - 1, }); } else if (myVote == -1) { this.setState({ - score: this.state.score + 2n, - upvotes: this.state.upvotes + 1n, - downvotes: this.state.downvotes - 1n, + score: this.state.score + 2, + upvotes: this.state.upvotes + 1, + downvotes: this.state.downvotes - 1, }); } else { this.setState({ - score: this.state.score + 1n, - upvotes: this.state.upvotes + 1n, + score: this.state.score + 1, + upvotes: this.state.upvotes + 1, }); } @@ -1354,19 +1354,19 @@ export class PostListing extends Component<PostListingProps, PostListingState> { if (myVote == 1) { this.setState({ - score: this.state.score - 2n, - upvotes: this.state.upvotes - 1n, - downvotes: this.state.downvotes + 1n, + score: this.state.score - 2, + upvotes: this.state.upvotes - 1, + downvotes: this.state.downvotes + 1, }); } else if (myVote == -1) { this.setState({ - score: this.state.score + 1n, - downvotes: this.state.downvotes - 1n, + score: this.state.score + 1, + downvotes: this.state.downvotes - 1, }); } else { this.setState({ - score: this.state.score - 1n, - downvotes: this.state.downvotes + 1n, + score: this.state.score - 1, + downvotes: this.state.downvotes + 1, }); } diff --git a/src/shared/components/post/post-report.tsx b/src/shared/components/post/post-report.tsx index 5ef25b4..0122cbe 100644 --- a/src/shared/components/post/post-report.tsx +++ b/src/shared/components/post/post-report.tsx @@ -40,7 +40,7 @@ export class PostReport extends Component<PostReportProps, any> { read: false, creator_blocked: false, my_vote: r.my_vote, - unread_comments: 0n, + unread_comments: 0, }; return ( diff --git a/src/shared/components/post/post.tsx b/src/shared/components/post/post.tsx index eed5aad..96d7911 100644 --- a/src/shared/components/post/post.tsx +++ b/src/shared/components/post/post.tsx @@ -189,7 +189,7 @@ export class Post extends Component<any, PostState> { type_: "Url", sort: "TopAll", listing_type: "All", - page: 1n, + page: 1, limit: trendingFetchLimit, auth: myAuth(false), }; diff --git a/src/shared/components/search.tsx b/src/shared/components/search.tsx index 94e9d29..9f76278 100644 --- a/src/shared/components/search.tsx +++ b/src/shared/components/search.tsx @@ -77,7 +77,7 @@ interface SearchProps { listingType: ListingType; communityId?: number | null; creatorId?: number | null; - page: bigint; + page: number; } type FilterType = "creator" | "community"; @@ -222,7 +222,7 @@ const personListing = ({ person, counts: { comment_count } }: PersonView) => function getListing( listing: JSX.ElementClass, - count: bigint, + count: number, translationKey: "number_of_comments" | "number_of_subscribers" ) { return ( @@ -863,7 +863,7 @@ export class Search extends Component<any, SearchState> { }); handleSortChange(sort: SortType) { - this.updateUrl({ sort, page: 1n }); + this.updateUrl({ sort, page: 1 }); } handleTypeChange(i: Search, event: any) { @@ -871,32 +871,32 @@ export class Search extends Component<any, SearchState> { i.updateUrl({ type, - page: 1n, + page: 1, }); } - handlePageChange(page: bigint) { + handlePageChange(page: number) { this.updateUrl({ page }); } handleListingTypeChange(listingType: ListingType) { this.updateUrl({ listingType, - page: 1n, + page: 1, }); } handleCommunityFilterChange({ value }: Choice) { this.updateUrl({ communityId: getIdFromString(value) ?? null, - page: 1n, + page: 1, }); } handleCreatorFilterChange({ value }: Choice) { this.updateUrl({ creatorId: getIdFromString(value) ?? null, - page: 1n, + page: 1, }); } @@ -905,7 +905,7 @@ export class Search extends Component<any, SearchState> { i.updateUrl({ q: i.state.searchText, - page: 1n, + page: 1, }); } diff --git a/src/shared/services/UserService.ts b/src/shared/services/UserService.ts index 16540f2..cc036b4 100644 --- a/src/shared/services/UserService.ts +++ b/src/shared/services/UserService.ts @@ -22,12 +22,12 @@ export class UserService { private static _instance: UserService; public myUserInfo?: MyUserInfo; public jwtInfo?: JwtInfo; - public unreadInboxCountSub: BehaviorSubject<bigint> = - new BehaviorSubject<bigint>(0n); - public unreadReportCountSub: BehaviorSubject<bigint> = - new BehaviorSubject<bigint>(0n); - public unreadApplicationCountSub: BehaviorSubject<bigint> = - new BehaviorSubject<bigint>(0n); + public unreadInboxCountSub: BehaviorSubject<number> = + new BehaviorSubject<number>(0); + public unreadReportCountSub: BehaviorSubject<number> = + new BehaviorSubject<number>(0); + public unreadApplicationCountSub: BehaviorSubject<number> = + new BehaviorSubject<number>(0); private constructor() { this.setJwtInfo(); diff --git a/src/shared/utils.ts b/src/shared/utils.ts index d65d2d3..b5b39c4 100644 --- a/src/shared/utils.ts +++ b/src/shared/utils.ts @@ -70,12 +70,12 @@ export const webArchiveUrl = "https://web.archive.org"; export const elementUrl = "https://element.io"; export const postRefetchSeconds: number = 60 * 1000; -export const fetchLimit = 40n; -export const trendingFetchLimit = 6n; +export const fetchLimit = 40; +export const trendingFetchLimit = 6; export const mentionDropdownFetchLimit = 10; export const commentTreeMaxDepth = 8; export const markdownFieldCharacterLimit = 50000; -export const maxUploadImages = 20n; +export const maxUploadImages = 20; export const concurrentImageUpload = 4; export const relTags = "noopener nofollow"; @@ -122,8 +122,8 @@ export function getIdFromString(id?: string): number | undefined { return id && id !== "0" && !Number.isNaN(Number(id)) ? Number(id) : undefined; } -export function getPageFromString(page?: string): bigint { - return page && !Number.isNaN(Number(page)) ? BigInt(page) : BigInt(1); +export function getPageFromString(page?: string): number { + return page && !Number.isNaN(Number(page)) ? Number(page) : 1; } export function randomStr( @@ -185,14 +185,14 @@ export function hotRankPost(post_view: PostView): number { return hotRank(post_view.counts.score, post_view.post.published); } -export function hotRank(score: bigint, timeStr: string): number { +export function hotRank(score: number, timeStr: string): number { // Rank = ScaleFactor * sign(Score) * log(1 + abs(Score)) / (Time + 2)^Gravity let date: Date = new Date(timeStr + "Z"); // Add Z to convert from UTC date let now: Date = new Date(); let hoursElapsed: number = (now.getTime() - date.getTime()) / 36e5; let rank = - (10000 * Math.log10(Math.max(1, Number(3n + score)))) / + (10000 * Math.log10(Math.max(1, 3 + Number(score)))) / Math.pow(hoursElapsed + 2, 1.8); // console.log(`Comment: ${comment.content}\nRank: ${rank}\nScore: ${comment.score}\nHours: ${hoursElapsed}`); @@ -212,16 +212,14 @@ export function mdToHtmlInline(text: string) { return { __html: md.renderInline(text) }; } -export function getUnixTime(text?: string): bigint | undefined { - return text ? BigInt(new Date(text).getTime() / 1000) : undefined; +export function getUnixTime(text?: string): number | undefined { + return text ? new Date(text).getTime() / 1000 : undefined; } -export function futureDaysToUnixTime(days?: number): bigint | undefined { +export function futureDaysToUnixTime(days?: number): number | undefined { return days - ? BigInt( - Math.trunc( - new Date(Date.now() + 1000 * 60 * 60 * 24 * days).getTime() / 1000 - ) + ? Math.trunc( + new Date(Date.now() + 1000 * 60 * 60 * 24 * days).getTime() / 1000 ) : undefined; } @@ -1358,7 +1356,7 @@ export async function fetchCommunities(q: string) { type_: "Communities", sort: "TopAll", listing_type: "All", - page: 1n, + page: 1, limit: fetchLimit, auth: myAuth(false), }; @@ -1372,7 +1370,7 @@ export async function fetchUsers(q: string) { type_: "Users", sort: "TopAll", listing_type: "All", - page: 1n, + page: 1, limit: fetchLimit, auth: myAuth(false), }; @@ -1407,7 +1405,7 @@ const SHORTNUM_SI_FORMAT = new Intl.NumberFormat("en-US", { compactDisplay: "short", }); -export function numToSI(value: bigint): string { +export function numToSI(value: number): string { return SHORTNUM_SI_FORMAT.format(value); } diff --git a/yarn.lock b/yarn.lock index 476dab1..24b8a35 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5334,10 +5334,10 @@ leac@^0.6.0: resolved "https://registry.yarnpkg.com/leac/-/leac-0.6.0.tgz#dcf136e382e666bd2475f44a1096061b70dc0912" integrity sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg== -lemmy-js-client@0.17.2-rc.16: - version "0.17.2-rc.16" - resolved "https://registry.yarnpkg.com/lemmy-js-client/-/lemmy-js-client-0.17.2-rc.16.tgz#404c02917291e7e89fdece75b49e7dc68c73492a" - integrity sha512-plAZn7ClopgjcTGTfh4b19jF894ucMfQh54J0P2DhQIG0k1Ic0ubq0rY1WZ+9yDyup6vCXF1i5MCylfNAs5Gxw== +lemmy-js-client@0.17.2-rc.17: + version "0.17.2-rc.17" + resolved "https://registry.yarnpkg.com/lemmy-js-client/-/lemmy-js-client-0.17.2-rc.17.tgz#91a167c3b61db39fab2e977685a42a77aeae519a" + integrity sha512-DBzQjVRo89co7Wppl72/xlNdJfAnXrUE0UgWZxO3v2I8axK9JUD4XmodpRe33thpfPmsURQ1W7dOUX60rcQPQg== dependencies: cross-fetch "^3.1.5" form-data "^4.0.0" -- 2.44.1