Skip to content
This repository has been archived by the owner on Mar 12, 2024. It is now read-only.

Commit

Permalink
Feature/asana integration (#273)
Browse files Browse the repository at this point in the history
* Feature/posthog frontend (#242)

* Create param validator

* Move discord

* Move user settings getter to app router

* Use standard var

* move getAllPublicUserData to app router

* Better error handling

* Delete getAllData.ts

* Delete discord

* Throw errors

* Handle error throwing

* Move updateSettings to app router

* Update confluence.svg

* Configure jest

* Create settings.test.ts

* Create updateSettings.test.ts

* Add getting test

* Use generalized validator

* Move Stripe to app router

* Move Sendgrid to app router

* Move vscode to airtable Analytics to app router

* Frontend analytics

* Change export

* Fix export

* Fix export

* Feature/posthog backend (#243)

* Create param validator

* Move discord

* Move user settings getter to app router

* Use standard var

* move getAllPublicUserData to app router

* Better error handling

* Delete getAllData.ts

* Delete discord

* Throw errors

* Handle error throwing

* Move updateSettings to app router

* Update confluence.svg

* Configure jest

* Create settings.test.ts

* Create updateSettings.test.ts

* Add getting test

* Use generalized validator

* Move Stripe to app router

* Move Sendgrid to app router

* Move vscode to airtable Analytics to app router

* Create posthog.ts

* Add types, move to utils

* Capture posthog event

* Change export

* Fix export

* Fix export

* Check dev env

* Move discord

* Use standard var

* Better error handling

* Delete discord

* Move Sendgrid to app router

* Fix export

* Upgrade routes to return 400 on missing params

* Add status codes

* Check status returned

* Test settings getter

* Feature/posthog frontend (#242)

* Create param validator

* Move discord

* Move user settings getter to app router

* Use standard var

* move getAllPublicUserData to app router

* Better error handling

* Delete getAllData.ts

* Delete discord

* Throw errors

* Handle error throwing

* Move updateSettings to app router

* Update confluence.svg

* Configure jest

* Create settings.test.ts

* Create updateSettings.test.ts

* Add getting test

* Use generalized validator

* Move Stripe to app router

* Move Sendgrid to app router

* Move vscode to airtable Analytics to app router

* Frontend analytics

* Change export

* Fix export

* Fix export

* Feature/posthog backend (#243)

* Create param validator

* Move discord

* Move user settings getter to app router

* Use standard var

* move getAllPublicUserData to app router

* Better error handling

* Delete getAllData.ts

* Delete discord

* Throw errors

* Handle error throwing

* Move updateSettings to app router

* Update confluence.svg

* Configure jest

* Create settings.test.ts

* Create updateSettings.test.ts

* Add getting test

* Use generalized validator

* Move Stripe to app router

* Move Sendgrid to app router

* Move vscode to airtable Analytics to app router

* Create posthog.ts

* Add types, move to utils

* Capture posthog event

* Change export

* Fix export

* Fix export

* Check dev env

* Extract response types

* Use responseTypes

* Fix settings to use data response

* Early return if no apiKey

* Add error events

* Remove event logging

* Use request URL to pass to posthog

* Extract tracking

* Use tracker object

* Move to route

* Fix typo

* Create route groups

* Fix imports

* Delete layout.tsx

* Create AsanaLoginLink.tsx

* Create guide to adding a new Oauth service

* Add asana

* Add asana

* Add asana

* Add SQL for new services

* Add env vars sections

* Update CONTRIBUTING.md

* Add lang descriptors

* Delete discord

* Fix tracking

* Fix import

* Fix import

* Roll back hover to dev

* Fix tracking

* Update CONTRIBUTING.md

* Delete unused folder

* v2.0.0 (#277)

* Feature/posthog frontend (#242) (#262)

* Feature/posthog frontend (#242)

* Create param validator

* Move discord

* Move user settings getter to app router

* Use standard var

* move getAllPublicUserData to app router

* Better error handling

* Delete getAllData.ts

* Delete discord

* Throw errors

* Handle error throwing

* Move updateSettings to app router

* Update confluence.svg

* Configure jest

* Create settings.test.ts

* Create updateSettings.test.ts

* Add getting test

* Use generalized validator

* Move Stripe to app router

* Move Sendgrid to app router

* Move vscode to airtable Analytics to app router

* Frontend analytics

* Change export

* Fix export

* Fix export

* Feature/posthog backend (#243)

* Create param validator

* Move discord

* Move user settings getter to app router

* Use standard var

* move getAllPublicUserData to app router

* Better error handling

* Delete getAllData.ts

* Delete discord

* Throw errors

* Handle error throwing

* Move updateSettings to app router

* Update confluence.svg

* Configure jest

* Create settings.test.ts

* Create updateSettings.test.ts

* Add getting test

* Use generalized validator

* Move Stripe to app router

* Move Sendgrid to app router

* Move vscode to airtable Analytics to app router

* Create posthog.ts

* Add types, move to utils

* Capture posthog event

* Change export

* Fix export

* Fix export

* Check dev env

* Fix small grammar mistakes in the sys prompt (#263)

* Fix small grammar mistakes in the sys prompt

* Update getOpenAISummary.ts

* Create ghapp page redirect (#264)

* Update README.md Title (#265)

* Create scorecard.yml

* Change retention days from 5 to 7

* State that contribution is permisionless

* Add OSSF scorecardbadge (#268)

* Feature/finish api routes (#241)

* Create param validator

* Move discord

* Move user settings getter to app router

* Use standard var

* move getAllPublicUserData to app router

* Better error handling

* Delete getAllData.ts

* Delete discord

* Throw errors

* Handle error throwing

* Move updateSettings to app router

* Update confluence.svg

* Configure jest

* Create settings.test.ts

* Create updateSettings.test.ts

* Add getting test

* Use generalized validator

* Move Stripe to app router

* Move Sendgrid to app router

* Move vscode to airtable Analytics to app router

* Change export

* Fix export

* Fix export

* Upgrade routes to return 400 on missing params

* Add status codes

* Check status returned

* Test settings getter

* Feature/posthog frontend (#242)

* Create param validator

* Move discord

* Move user settings getter to app router

* Use standard var

* move getAllPublicUserData to app router

* Better error handling

* Delete getAllData.ts

* Delete discord

* Throw errors

* Handle error throwing

* Move updateSettings to app router

* Update confluence.svg

* Configure jest

* Create settings.test.ts

* Create updateSettings.test.ts

* Add getting test

* Use generalized validator

* Move Stripe to app router

* Move Sendgrid to app router

* Move vscode to airtable Analytics to app router

* Frontend analytics

* Change export

* Fix export

* Fix export

* Feature/posthog backend (#243)

* Create param validator

* Move discord

* Move user settings getter to app router

* Use standard var

* move getAllPublicUserData to app router

* Better error handling

* Delete getAllData.ts

* Delete discord

* Throw errors

* Handle error throwing

* Move updateSettings to app router

* Update confluence.svg

* Configure jest

* Create settings.test.ts

* Create updateSettings.test.ts

* Add getting test

* Use generalized validator

* Move Stripe to app router

* Move Sendgrid to app router

* Move vscode to airtable Analytics to app router

* Create posthog.ts

* Add types, move to utils

* Capture posthog event

* Change export

* Fix export

* Fix export

* Check dev env

* Extract response types

* Use responseTypes

* Fix settings to use data response

* Early return if no apiKey

* Add error events

* Remove event logging

* Use request URL to pass to posthog

* Extract tracking

* Use tracker object

* Move to route

* Fix typo

* Add missing params test

* Fix/v2.0.0 merge conflicts  (#278)

* Feature/posthog frontend (#242)

* Create param validator

* Move discord

* Move user settings getter to app router

* Use standard var

* move getAllPublicUserData to app router

* Better error handling

* Delete getAllData.ts

* Delete discord

* Throw errors

* Handle error throwing

* Move updateSettings to app router

* Update confluence.svg

* Configure jest

* Create settings.test.ts

* Create updateSettings.test.ts

* Add getting test

* Use generalized validator

* Move Stripe to app router

* Move Sendgrid to app router

* Move vscode to airtable Analytics to app router

* Frontend analytics

* Change export

* Fix export

* Fix export

* Feature/posthog backend (#243)

* Create param validator

* Move discord

* Move user settings getter to app router

* Use standard var

* move getAllPublicUserData to app router

* Better error handling

* Delete getAllData.ts

* Delete discord

* Throw errors

* Handle error throwing

* Move updateSettings to app router

* Update confluence.svg

* Configure jest

* Create settings.test.ts

* Create updateSettings.test.ts

* Add getting test

* Use generalized validator

* Move Stripe to app router

* Move Sendgrid to app router

* Move vscode to airtable Analytics to app router

* Create posthog.ts

* Add types, move to utils

* Capture posthog event

* Change export

* Fix export

* Fix export

* Check dev env

* Move discord

* Use standard var

* Better error handling

* Delete discord

* Move Sendgrid to app router

* Fix export

* Upgrade routes to return 400 on missing params

* Add status codes

* Check status returned

* Test settings getter

* Feature/posthog frontend (#242)

* Create param validator

* Move discord

* Move user settings getter to app router

* Use standard var

* move getAllPublicUserData to app router

* Better error handling

* Delete getAllData.ts

* Delete discord

* Throw errors

* Handle error throwing

* Move updateSettings to app router

* Update confluence.svg

* Configure jest

* Create settings.test.ts

* Create updateSettings.test.ts

* Add getting test

* Use generalized validator

* Move Stripe to app router

* Move Sendgrid to app router

* Move vscode to airtable Analytics to app router

* Frontend analytics

* Change export

* Fix export

* Fix export

* Feature/posthog backend (#243)

* Create param validator

* Move discord

* Move user settings getter to app router

* Use standard var

* move getAllPublicUserData to app router

* Better error handling

* Delete getAllData.ts

* Delete discord

* Throw errors

* Handle error throwing

* Move updateSettings to app router

* Update confluence.svg

* Configure jest

* Create settings.test.ts

* Create updateSettings.test.ts

* Add getting test

* Use generalized validator

* Move Stripe to app router

* Move Sendgrid to app router

* Move vscode to airtable Analytics to app router

* Create posthog.ts

* Add types, move to utils

* Capture posthog event

* Change export

* Fix export

* Fix export

* Check dev env

* Extract response types

* Use responseTypes

* Fix settings to use data response

* Early return if no apiKey

* Add error events

* Remove event logging

* Use request URL to pass to posthog

* Extract tracking

* Use tracker object

* Move to route

* Fix typo

* Create route groups

* Fix imports

* Delete layout.tsx

* Delete discord

* Use correct posthog

* Fix hover

* Update route.ts

* Delete getContext.ts

* delete unused folders

---------

Co-authored-by: Esteban Vargas <estebanvargas94@gmail.com>

* Update redirect.tsx

* Fix/remove conflicting route (#280)

* Update redirect.tsx

* Delete getContext.ts

* Remove discord

* Fix file

* Update redirect.tsx

* Create saveUser.ts

* Add required pages

* Add workspace_name

* Add asana info getter

* add workspace_name

* Fix returned values

* Add asana info

* Add asana

* Add asana

* Fix posthog (#285)

* Feature/posthog frontend (#242)

* Create param validator

* Move discord

* Move user settings getter to app router

* Use standard var

* move getAllPublicUserData to app router

* Better error handling

* Delete getAllData.ts

* Delete discord

* Throw errors

* Handle error throwing

* Move updateSettings to app router

* Update confluence.svg

* Configure jest

* Create settings.test.ts

* Create updateSettings.test.ts

* Add getting test

* Use generalized validator

* Move Stripe to app router

* Move Sendgrid to app router

* Move vscode to airtable Analytics to app router

* Frontend analytics

* Change export

* Fix export

* Fix export

* Move discord

* Use standard var

* Better error handling

* Delete discord

* Move Sendgrid to app router

* Fix export

* Upgrade routes to return 400 on missing params

* Add status codes

* Check status returned

* Test settings getter

* Feature/posthog frontend (#242)

* Create param validator

* Move discord

* Move user settings getter to app router

* Use standard var

* move getAllPublicUserData to app router

* Better error handling

* Delete getAllData.ts

* Delete discord

* Throw errors

* Handle error throwing

* Move updateSettings to app router

* Update confluence.svg

* Configure jest

* Create settings.test.ts

* Create updateSettings.test.ts

* Add getting test

* Use generalized validator

* Move Stripe to app router

* Move Sendgrid to app router

* Move vscode to airtable Analytics to app router

* Frontend analytics

* Change export

* Fix export

* Fix export

* Feature/posthog backend (#243)

* Create param validator

* Move discord

* Move user settings getter to app router

* Use standard var

* move getAllPublicUserData to app router

* Better error handling

* Delete getAllData.ts

* Delete discord

* Throw errors

* Handle error throwing

* Move updateSettings to app router

* Update confluence.svg

* Configure jest

* Create settings.test.ts

* Create updateSettings.test.ts

* Add getting test

* Use generalized validator

* Move Stripe to app router

* Move Sendgrid to app router

* Move vscode to airtable Analytics to app router

* Create posthog.ts

* Add types, move to utils

* Capture posthog event

* Change export

* Fix export

* Fix export

* Check dev env

* Extract response types

* Use responseTypes

* Fix settings to use data response

* Early return if no apiKey

* Add error events

* Remove event logging

* Use request URL to pass to posthog

* Extract tracking

* Use tracker object

* Move to route

* Fix typo

* Create route groups

* Fix imports

* Delete layout.tsx

* Update route.ts

* Update redirect.tsx

* Update loading.tsx

* Update page.tsx

---------

Co-authored-by: Esteban Vargas <estebanvargas94@gmail.com>
  • Loading branch information
EstebanDalelR and baristaGeek committed Sep 14, 2023
1 parent 00206ec commit 40ced6d
Show file tree
Hide file tree
Showing 12 changed files with 245 additions and 56 deletions.
5 changes: 5 additions & 0 deletions app/(loggedIn)/asana/loading.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import LoadingConnectedService from "../../../components/services/loading";

export default function loadingConnectedService() {
return <LoadingConnectedService />;
}
83 changes: 83 additions & 0 deletions app/(loggedIn)/asana/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
import { getServerSession } from "next-auth";
//change this to import correctly
import saveUserInfo from "../../../utils/db/asana/saveUser";

import { authOptions } from "../../api/auth/[...nextauth]/route";
import getAllPublicUserData from "../../../utils/api/getAllUserPublicData";

import ConnectedService from "../../../components/services/page";
import LoginArray from "../../../components/services/loginArray";

export default async function ServicePage({
searchParams,
}: {
searchParams: { [key: string]: string | string[] | undefined };
}) {
const session = await getServerSession(authOptions);
const userEmail = session?.user?.email;
const userName = session?.user?.name;
const { code, state } = searchParams;
let error = "";
// change service name
const serviceName = "Asana";
const [userData, serviceToken] = await Promise.all([
getAllPublicUserData({ email: userEmail }).catch((e) => {
console.error(e);
return null;
}),
// change this fetch

fetch(`https://app.asana.com/-/oauth_token`, {
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded",
Accept: "application/json",
},
body: `grant_type=refresh_token&code=${code}redirect_uri=https://app.watermelontools.com/asana&client_id=${process.env.ASANA_CLIENT_ID}&client_secret=${process.env.ASANA_CLIENT_SECRET}`,
}),
]);

// the recommended services should not be of the same category as the current one
const nameList = ["GitLab", "Slack", "Notion", "Confluence"];
const loginArray = LoginArray({ nameList, userEmail, userData });

const json = await serviceToken.json();
if (json.error) {
error = json.error;
} else {
// get user correctly
let user = await fetch(
`https://app.asana.com/api/1.0/users/me?opt_fields=photo.image_128x128,workspaces,workspaces.name,photo`,
{
headers: {
Authorization: `Bearer ${json.access_token}`,
},
}
);
let userJson = await user.json();
// save user correctly
await saveUserInfo({
id: json.data.id,
gid: json.data.gid,
name: json.data.name,
email: json.data.email,
access_token: json.access_token,
refresh_token: json.refresh_token,
avatar_url: userJson.photo.image_128x128,
workspace: userJson.workspaces[0].gid,
workspace_name: userJson.workspaces[0].name,
watermelon_user: state,
});

return (
<ConnectedService
serviceName={serviceName}
displayName={json.data.name}
teamName={userJson.workspaces[0].name}
avatarUrl={userJson.photo.image_128x128}
loginArray={loginArray}
error={error}
/>
);
}
}
21 changes: 21 additions & 0 deletions app/api/actions/github/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import getSlack from "../../../../utils/actions/getSlack";
import getNotion from "../../../../utils/actions/getNotion";
import getLinear from "../../../../utils/actions/getLinear";
import getConfluence from "../../../../utils/actions/getConfluence";
import getAsana from "../../../../utils/actions/getAsana";
import getOpenAISummary from "../../../../utils/actions/getOpenAISummary";

import countMarkdown from "../../../../utils/actions/markdownHelpers/count";
Expand Down Expand Up @@ -74,13 +75,16 @@ export async function POST(request: Request) {
slack_token,
notion_token,
linear_token,
asana_token,
asana_workspace,
AISummary,
JiraTickets,
GitHubPRs,
SlackMessages,
NotionPages,
LinearTickets,
ConfluencePages,
AsanaTasks,
user_email,
watermelon_user,
} = wmUserData;
Expand Down Expand Up @@ -329,6 +333,7 @@ export async function POST(request: Request) {
slackValue,
notionValue,
linearValue,
asanaValue,
count,
] = await Promise.all([
getGitHub({
Expand Down Expand Up @@ -369,6 +374,13 @@ export async function POST(request: Request) {
randomWords,
amount: LinearTickets,
}),
getAsana({
access_token: asana_token,
user: user_email,
randomWords,
workspace: asana_workspace,
amount: AsanaTasks,
}),
addActionCount({ watermelon_user }),
]);
textToWrite += `### WatermelonAI Summary \n`;
Expand All @@ -384,6 +396,7 @@ export async function POST(request: Request) {
slackValue,
notionValue,
linearValue,
asanaValue,
},
title,
body,
Expand Down Expand Up @@ -441,6 +454,13 @@ export async function POST(request: Request) {
systemName: "Linear",
systemResponseName: "Linear Tickets",
});
textToWrite += generalMarkdownHelper({
amount: AsanaTasks,
value: asanaValue,
userLogin,
systemName: "Asana",
systemResponseName: "Asana Tasks",
});
textToWrite += countMarkdown({
count,
isPrivateRepo: repository.private,
Expand All @@ -454,6 +474,7 @@ export async function POST(request: Request) {
slackValue,
notionValue,
linearValue,
asanaValue,
textToWrite,
businessLogicSummary,
owner,
Expand Down
7 changes: 2 additions & 5 deletions app/api/analytics/vsmarketplace/update/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { NextResponse } from "next/server";
import validateParams from "../../../../../utils/api/validateParams";
import Airtable from "airtable";
import { missingParamsResponse } from "../../../../../utils/api/responses";
import posthog from "../../../../../utils/posthog/posthog";
import { missingParamsPosthogTracking } from "../../../../../utils/api/posthogTracking";
Airtable.configure({
endpointUrl: "https://api.airtable.com",
apiKey: process.env.AIRTABLE_API_KEY,
Expand Down Expand Up @@ -33,10 +33,7 @@ export async function POST(request: Request) {
const { missingParams } = validateParams(req, ["dailyStats"]);

if (missingParams.length > 0) {
posthog.capture({
event: `${request.url}-missing-params`,
properties: missingParams,
});
missingParamsPosthogTracking({ missingParams, url: request.url });
return missingParamsResponse({ missingParams });
}
const { dailyStats } = req;
Expand Down
93 changes: 54 additions & 39 deletions app/api/extension/getContext/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import {
import executeRequest from "../../../../utils/db/azuredb";
import getOpenAISummary from "../../../../utils/actions/getOpenAISummary";
import { StandardProcessedDataArray } from "../../../../types/watermelon";
import getAsana from "../../../../utils/actions/getAsana";
function replaceSpecialChars(inputString) {
const specialChars = /[!"#$%&/()=?_"{}¨*]/g; // Edit this list to include or exclude characters
return inputString.toLowerCase().replace(specialChars, " ");
Expand Down Expand Up @@ -51,6 +52,8 @@ export async function POST(request: Request) {
slack_token,
notion_token,
linear_token,
asana_token,
asana_workspace,
user_email,
AISummary,
JiraTickets,
Expand All @@ -59,6 +62,7 @@ export async function POST(request: Request) {
NotionPages,
LinearTickets,
ConfluencePages,
AsanaTasks,
} = wmUserData;
try {
wmUserData = await executeRequest(query);
Expand Down Expand Up @@ -86,45 +90,53 @@ export async function POST(request: Request) {
.sort(() => Math.random() - 0.5)
.slice(0, 6);

const [github, jira, confluence, slack, notion, linear] = await Promise.all([
getGitHub({
repo,
owner,
github_token,
randomWords,
amount: GitHubPRs,
}),
getJira({
user: user_email,
token: jira_token,
refresh_token: jira_refresh_token,
randomWords,
amount: JiraTickets,
}),
getConfluence({
token: confluence_token,
refresh_token: confluence_refresh_token,
cloudId: confluence_id,
user: user_email,
randomWords,
amount: ConfluencePages,
}),
getSlack({
slack_token,
searchString: randomWords.join(" "),
amount: SlackMessages,
}),
getNotion({
notion_token,
randomWords,
amount: NotionPages,
}),
getLinear({
linear_token,
randomWords,
amount: LinearTickets,
}),
]);
const [github, jira, confluence, slack, notion, linear, asana] =
await Promise.all([
getGitHub({
repo,
owner,
github_token,
randomWords,
amount: GitHubPRs,
}),
getJira({
user: user_email,
token: jira_token,
refresh_token: jira_refresh_token,
randomWords,
amount: JiraTickets,
}),
getConfluence({
token: confluence_token,
refresh_token: confluence_refresh_token,
cloudId: confluence_id,
user: user_email,
randomWords,
amount: ConfluencePages,
}),
getSlack({
slack_token,
searchString: randomWords.join(" "),
amount: SlackMessages,
}),
getNotion({
notion_token,
randomWords,
amount: NotionPages,
}),
getLinear({
linear_token,
randomWords,
amount: LinearTickets,
}),
getAsana({
access_token: asana_token,
user: user_email,
randomWords,
workspace: asana_workspace,
amount: AsanaTasks,
}),
]);
const WatermelonAISummary = await getOpenAISummary({
commitList: searchStringSet.replace(/\r?\n|\r/g, "").split(","),
values: {
Expand All @@ -134,6 +146,7 @@ export async function POST(request: Request) {
slack: slack?.data,
notion: notion?.data,
linear: linear?.data,
asana: asana?.data,
},
});

Expand All @@ -155,6 +168,7 @@ export async function POST(request: Request) {
slack: slack.fullData || slack.error,
notion: notion.fullData || notion.error,
linear: linear.fullData || linear.error,
asana: asana.fullData || asana.error,
watermelonSummary: standardWatermelonAISummary,
},
});
Expand All @@ -166,6 +180,7 @@ export async function POST(request: Request) {
slack: slack.data || slack.error,
notion: notion.data || notion.error,
linear: linear.data || linear.error,
asana: asana.data || asana.error,
watermelonSummary: standardWatermelonAISummary,
},
});
Expand Down
10 changes: 10 additions & 0 deletions app/api/hover/getHoverData/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import getSlack from "../../../../utils/actions/getSlack";
import getNotion from "../../../../utils/actions/getNotion";
import getLinear from "../../../../utils/actions/getLinear";
import getConfluence from "../../../../utils/actions/getConfluence";
import getAsana from "../../../../utils/actions/getAsana";
import validateParams from "../../../../utils/api/validateParams";
import {
failedPosthogTracking,
Expand Down Expand Up @@ -44,6 +45,8 @@ export async function POST(request: Request) {
slack_token,
notion_token,
linear_token,
asana_token,
asana_workspace,
user_email,
watermelon_user,
} = wmUserData;
Expand Down Expand Up @@ -110,6 +113,13 @@ export async function POST(request: Request) {
randomWords,
amount: 1,
}),
getAsana({
access_token: asana_token,
user: user_email,
randomWords,
workspace: asana_workspace,
amount: 1,
}),
]);

successPosthogTracking({
Expand Down
1 change: 0 additions & 1 deletion components/loginGrid.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,6 @@ function LoginGrid({ userEmail, data }) {
}}
>
<h2 className="Subhead-heading">{typeToName[type]}</h2>

</div>
<div
style={{
Expand Down
2 changes: 1 addition & 1 deletion components/redirect.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import { useEffect, useState } from "react";

export default function TimeToRedirect({ url }) {
const [timeToRedirect, setTimeToRedirect] = useState(10);
const [timeToRedirect, setTimeToRedirect] = useState(9);

useEffect(() => {
const interval = setInterval(() => {
Expand Down
Loading

0 comments on commit 40ced6d

Please sign in to comment.