Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
a50a2ec
style: added cta at the bottom of sidebar, added missing icons as wel…
dakshesh14 Jan 11, 2023
f36e61b
pulled latest changes
dakshesh14 Jan 11, 2023
56146fd
Merge branch 'stage-release' of https://github.com/makeplane/plane
dakshesh14 Jan 12, 2023
bf594f4
refractor: running parallel request,
dakshesh14 Jan 12, 2023
22a207e
fix: sidebar dropdown content going below kanban items
dakshesh14 Jan 12, 2023
81a5118
refractor: making parallel api calls
dakshesh14 Jan 12, 2023
fff77fe
refactoring file structure and signin page
sriramveeraghanta Jan 12, 2023
c442464
style: changed text and added spinner for signing in loading
dakshesh14 Jan 13, 2023
089bda8
refractor: removed unused type
dakshesh14 Jan 13, 2023
f4c8df2
fix: my issue cta in profile page sending to 404 page
dakshesh14 Jan 13, 2023
0d84678
Merge pull request #167 from dakshesh14/refractor/project_settings
dakshesh14 Jan 13, 2023
2eaf5a1
resolved merge conflict
dakshesh14 Jan 13, 2023
7c25cff
Merge pull request #172 from makeplane/refractor/project_settings
dakshesh14 Jan 13, 2023
0f92956
Merge branch 'fix/app_sidebar' into fix/app_sidebar
dakshesh14 Jan 13, 2023
b6b2eee
Merge pull request #168 from dakshesh14/fix/app_sidebar
dakshesh14 Jan 13, 2023
b283a46
Merge branch 'refractor/project_settings__state' into refractor/proje…
dakshesh14 Jan 13, 2023
aa75371
Merge pull request #169 from dakshesh14/refractor/project_settings__s…
dakshesh14 Jan 13, 2023
f46a783
Merge pull request #173 from makeplane/fix/app_sidebar
sriramveeraghanta Jan 13, 2023
21a552b
Merge pull request #170 from makeplane/fix/signin
dakshesh14 Jan 13, 2023
cc8b491
Merge pull request #171 from makeplane/fix/my_profile
dakshesh14 Jan 13, 2023
542d936
Merge pull request #174 from makeplane/refractor/project_settings__state
dakshesh14 Jan 13, 2023
d478016
fix: added new s3 bucket url in next.config.js file
dakshesh14 Jan 13, 2023
26439db
Merge pull request #175 from makeplane/fix/image-upload
sriramveeraghanta Jan 16, 2023
144d02e
packaging UI components
sriramveeraghanta Jan 16, 2023
3716019
eslint config
sriramveeraghanta Jan 17, 2023
492c95c
eslint fixes
sriramveeraghanta Jan 18, 2023
bf7d315
Merge branch 'refactor/file-naming' of https://github.com/makeplane/p…
venkatesh-sp Jan 18, 2023
bc0b89d
refactoring changes
sriramveeraghanta Jan 18, 2023
645c0b7
Merge branch 'refactor/file-naming' of https://github.com/makeplane/p…
venkatesh-sp Jan 18, 2023
5282e35
build fixes
sriramveeraghanta Jan 18, 2023
e58b721
Merge branch 'refactor/file-naming' of https://github.com/makeplane/p…
venkatesh-sp Jan 18, 2023
1a353a8
minor fixes
sriramveeraghanta Jan 18, 2023
5f7e754
Merge branch 'refactor/file-naming' of https://github.com/makeplane/p…
venkatesh-sp Jan 18, 2023
fe210d6
Merge branch 'develop' of github.com:makeplane/plane into refactor/fi…
sriramveeraghanta Jan 18, 2023
32762ae
adding todo comments for reference
sriramveeraghanta Jan 18, 2023
45e774e
refactor: cleared unused imports and re ordered imports
venkatesh-sp Jan 18, 2023
97f9526
refactor: removed unused imports
venkatesh-sp Jan 18, 2023
b970e25
fix: resolved merge conflicts with success build
venkatesh-sp Jan 18, 2023
15cbd01
fix: added workspace argument to useissues hook
venkatesh-sp Jan 18, 2023
69cf4b6
Merge pull request #182 from venplane/dev/refactoring
sriramveeraghanta Jan 19, 2023
bcdbf6d
refactor: removed api-routes file, unnecessary constants
aaryan610 Jan 19, 2023
3dc6991
refactor: created helpers folder, removed unnecessary constants
aaryan610 Jan 19, 2023
e915c5e
Merge pull request #184 from makeplane/refactor/remove_constants
sriramveeraghanta Jan 19, 2023
fa431d4
refactor: new context for issue view
aaryan610 Jan 20, 2023
5ddbfe2
Merge pull request #187 from makeplane/refactor/context_management
sriramveeraghanta Jan 20, 2023
1cd6933
refactoring issues page
sriramveeraghanta Jan 20, 2023
37ba1cd
build fixes
sriramveeraghanta Jan 20, 2023
64a55cc
refactoring
sriramveeraghanta Jan 23, 2023
87ee00f
refactor: create issue modal
aaryan610 Jan 24, 2023
9af75a3
refactor: module ui
AnmolBhatia1001 Jan 24, 2023
6eb3ea7
fix: sub-issues mutation
aaryan610 Jan 24, 2023
c105923
fix: create more option in create issue modal
aaryan610 Jan 24, 2023
d557552
Merge pull request #190 from makeplane/refactor/select_dropdowns
sriramveeraghanta Jan 25, 2023
a28c0ea
description form debounce issue
sriramveeraghanta Jan 25, 2023
c22139f
Merge branch 'refactor/select_dropdowns' of github.com:makeplane/plan…
AnmolBhatia1001 Jan 25, 2023
fc819b7
refactor: global component for assignees list
aaryan610 Jan 25, 2023
8143eaf
Merge branch 'refactor/file-naming' of github.com:makeplane/plane int…
AnmolBhatia1001 Jan 25, 2023
118eff0
fix: link module interface
AnmolBhatia1001 Jan 25, 2023
de7320b
fix: priority icons and sub-issues count added
aaryan610 Jan 25, 2023
7ffa9b7
Merge pull request #192 from makeplane/dev-ui
sriramveeraghanta Jan 25, 2023
66bb334
Merge pull request #191 from makeplane/refactor/granular_components
sriramveeraghanta Jan 25, 2023
251d400
Merge pull request #193 from makeplane/refactor/ui_fixes
sriramveeraghanta Jan 25, 2023
f7fad4d
fix: cycle mutation in issue details page
aaryan610 Jan 25, 2023
4adf37c
fix: remove issue from cycle mutation
aaryan610 Jan 25, 2023
bc0146d
fix: create issue modal in home page
aaryan610 Jan 26, 2023
34e6a93
fix: removed unnecessary props
aaryan610 Jan 26, 2023
67da0c7
fix: updated create issue form status
aaryan610 Jan 26, 2023
d063315
fix: settings auth breaking
aaryan610 Jan 26, 2023
72d0fab
refactor: issue details page
aaryan610 Jan 26, 2023
5671077
Merge pull request #195 from makeplane/refactor/mutation_performance
sriramveeraghanta Jan 26, 2023
79fd7b6
Merge pull request #196 from makeplane/refactor/create_issue_modal
sriramveeraghanta Jan 26, 2023
08aea8d
Merge pull request #197 from makeplane/refactor/settings_auth
sriramveeraghanta Jan 26, 2023
721b39b
Merge pull request #198 from makeplane/refactor/issue_detail_sidebar
sriramveeraghanta Jan 26, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
10 changes: 10 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
module.exports = {
root: true,
// This tells ESLint to load the config from the package `config`
// extends: ["custom"],
settings: {
next: {
rootDir: ["apps/*/"],
},
},
};
3 changes: 0 additions & 3 deletions .eslintrc.json

This file was deleted.

1 change: 1 addition & 0 deletions apps/app/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
module.exports = require("config/.eslintrc");
2 changes: 1 addition & 1 deletion apps/app/Dockerfile.web
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ ENV PATH="${PATH}:./pnpm"

COPY ./apps ./apps
COPY ./package.json ./package.json
COPY ./.eslintrc.json ./.eslintrc.json
COPY ./.eslintrc.js ./.eslintrc.js
COPY ./turbo.json ./turbo.json
COPY ./pnpm-workspace.yaml ./pnpm-workspace.yaml
COPY ./pnpm-lock.yaml ./pnpm-lock.yaml
Expand Down
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
import React, { useState } from "react";
// react hook form
import { useForm } from "react-hook-form";
// ui
import { Button, Input } from "ui";
import authenticationService from "lib/services/authentication.service";
// icons
import { CheckCircleIcon } from "@heroicons/react/20/solid";
import { Button, Input } from "components/ui";
// services
import authenticationService from "services/authentication.service";
// icons

// types
type SignIn = {
type EmailCodeFormValues = {
email: string;
key?: string;
token?: string;
};

const EmailCodeForm = ({ onSuccess }: any) => {
export const EmailCodeForm = ({ onSuccess }: any) => {
const [codeSent, setCodeSent] = useState(false);
const {
register,
handleSubmit,
setError,
setValue,
formState: { errors, isSubmitting, dirtyFields, isValid, isDirty },
} = useForm<SignIn>({
formState: { errors, isSubmitting, isValid, isDirty },
} = useForm<EmailCodeFormValues>({
defaultValues: {
email: "",
key: "",
Expand All @@ -32,9 +32,8 @@ const EmailCodeForm = ({ onSuccess }: any) => {
reValidateMode: "onChange",
});

const onSubmit = ({ email }: SignIn) => {
const onSubmit = ({ email }: EmailCodeFormValues) => {
console.log(email);

authenticationService
.emailCode({ email })
.then((res) => {
Expand All @@ -46,15 +45,15 @@ const EmailCodeForm = ({ onSuccess }: any) => {
});
};

const handleSignin = (formData: SignIn) => {
const handleSignin = (formData: EmailCodeFormValues) => {
authenticationService
.magicSignIn(formData)
.then(async (response) => {
await onSuccess(response);
.then((response) => {
onSuccess(response);
})
.catch((error) => {
console.log(error);
setError("token" as keyof SignIn, {
setError("token" as keyof EmailCodeFormValues, {
type: "manual",
message: error.error,
});
Expand Down Expand Up @@ -127,5 +126,3 @@ const EmailCodeForm = ({ onSuccess }: any) => {
</>
);
};

export default EmailCodeForm;
Original file line number Diff line number Diff line change
@@ -1,29 +1,26 @@
import React from "react";
// next
import Link from "next/link";
import { useRouter } from "next/router";
// react hook form
import { useForm } from "react-hook-form";
// ui
import { Button, Input } from "ui";
import authenticationService from "lib/services/authentication.service";
import { Button, Input } from "components/ui";
import authenticationService from "services/authentication.service";

// types
type SignIn = {
type EmailPasswordFormValues = {
email: string;
password?: string;
medium?: string;
};

const EmailPasswordForm = ({ onSuccess }: any) => {
export const EmailPasswordForm = ({ onSuccess }: any) => {
const {
register,
handleSubmit,
setError,
setValue,
getValues,
formState: { errors, isSubmitting, dirtyFields, isValid, isDirty },
} = useForm<SignIn>({
formState: { errors, isSubmitting, isValid, isDirty },
} = useForm<EmailPasswordFormValues>({
defaultValues: {
email: "",
password: "",
Expand All @@ -33,19 +30,19 @@ const EmailPasswordForm = ({ onSuccess }: any) => {
reValidateMode: "onChange",
});

const onSubmit = (formData: SignIn) => {
const onSubmit = (formData: EmailPasswordFormValues) => {
authenticationService
.emailLogin(formData)
.then(async (response) => {
await onSuccess(response);
.then((response) => {
onSuccess(response);
})
.catch((error) => {
console.log(error);
if (!error?.response?.data) return;
Object.keys(error.response.data).forEach((key) => {
const err = error.response.data[key];
console.log("err", err);
setError(key as keyof SignIn, {
setError(key as keyof EmailPasswordFormValues, {
type: "manual",
message: Array.isArray(err) ? err.join(", ") : err,
});
Expand Down Expand Up @@ -85,8 +82,8 @@ const EmailPasswordForm = ({ onSuccess }: any) => {
placeholder="Enter your password"
/>
</div>
<div className="flex items-center justify-between mt-2">
<div className="text-sm ml-auto">
<div className="mt-2 flex items-center justify-between">
<div className="ml-auto text-sm">
<Link href={"/forgot-password"}>
<a className="font-medium text-theme hover:text-indigo-500">Forgot your password?</a>
</Link>
Expand All @@ -105,5 +102,3 @@ const EmailPasswordForm = ({ onSuccess }: any) => {
</>
);
};

export default EmailPasswordForm;
46 changes: 46 additions & 0 deletions apps/app/components/account/email-signin-form.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
import { useState, FC } from "react";
import { KeyIcon } from "@heroicons/react/24/outline";
// components
import { EmailCodeForm, EmailPasswordForm } from "components/account";

export interface EmailSignInFormProps {
handleSuccess: () => void;
}

export const EmailSignInForm: FC<EmailSignInFormProps> = (props) => {
const { handleSuccess } = props;
// states
const [useCode, setUseCode] = useState(true);

return (
<>
{useCode ? (
<EmailCodeForm onSuccess={handleSuccess} />
) : (
<EmailPasswordForm onSuccess={handleSuccess} />
)}
<div className="mt-6">
<div className="relative">
<div className="absolute inset-0 flex items-center">
<div className="w-full border-t border-gray-300" />
</div>
<div className="relative flex justify-center text-sm">
<span className="bg-white px-2 text-gray-500">or</span>
</div>
</div>
<div className="mt-6 flex w-full flex-col items-stretch gap-y-2">
<button
type="button"
className="flex w-full items-center rounded border border-gray-300 px-3 py-2 text-sm duration-300 hover:bg-gray-100"
onClick={() => setUseCode((prev) => !prev)}
>
<KeyIcon className="h-[25px] w-[25px]" />
<span className="w-full text-center font-medium">
{useCode ? "Continue with Password" : "Continue with Code"}
</span>
</button>
</div>
</div>
</>
);
};
51 changes: 51 additions & 0 deletions apps/app/components/account/github-login-button.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import { useEffect, useState, FC } from "react";
import Link from "next/link";
import Image from "next/image";
import { useRouter } from "next/router";
// images
import githubImage from "/public/logos/github.png";

const { NEXT_PUBLIC_GITHUB_ID } = process.env;

export interface GithubLoginButtonProps {
handleSignIn: React.Dispatch<string>;
}

export const GithubLoginButton: FC<GithubLoginButtonProps> = (props) => {
const { handleSignIn } = props;
// router
const {
query: { code },
} = useRouter();
// states
const [loginCallBackURL, setLoginCallBackURL] = useState(undefined);

useEffect(() => {
if (code) {
handleSignIn(code.toString());
}
}, [code, handleSignIn]);

useEffect(() => {
const origin =
typeof window !== "undefined" && window.location.origin ? window.location.origin : "";
setLoginCallBackURL(`${origin}/signin` as any);
}, []);

return (
<Link
href={`https://github.com/login/oauth/authorize?client_id=${NEXT_PUBLIC_GITHUB_ID}&redirect_uri=${loginCallBackURL}`}
>
<button className="flex w-full items-center rounded bg-black px-3 py-2 text-sm text-white opacity-90 duration-300 hover:opacity-100">
<Image
src={githubImage}
height={25}
width={25}
className="flex-shrink-0"
alt="GitHub Logo"
/>
<span className="w-full text-center font-medium">Continue with GitHub</span>
</button>
</Link>
);
};
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,21 @@ import Script from "next/script";

export interface IGoogleLoginButton {
text?: string;
onSuccess?: (res: any) => void;
onFailure?: (res: any) => void;
handleSignIn: React.Dispatch<any>;
styles?: CSSProperties;
}

export const GoogleLoginButton: FC<IGoogleLoginButton> = (props) => {
const { handleSignIn } = props;

const googleSignInButton = useRef<HTMLDivElement>(null);
const [gsiScriptLoaded, setGsiScriptLoaded] = useState(false);

const loadScript = useCallback(() => {
if (!googleSignInButton.current || gsiScriptLoaded) return;
window?.google?.accounts.id.initialize({
client_id: process.env.NEXT_PUBLIC_GOOGLE_CLIENTID || "",
callback: props.onSuccess as any,
callback: handleSignIn,
});
window?.google?.accounts.id.renderButton(
googleSignInButton.current,
Expand All @@ -32,7 +33,7 @@ export const GoogleLoginButton: FC<IGoogleLoginButton> = (props) => {
);
window?.google?.accounts.id.prompt(); // also display the One Tap dialog
setGsiScriptLoaded(true);
}, [props.onSuccess, gsiScriptLoaded]);
}, [handleSignIn, gsiScriptLoaded]);

useEffect(() => {
if (window?.google?.accounts?.id) {
Expand All @@ -46,7 +47,7 @@ export const GoogleLoginButton: FC<IGoogleLoginButton> = (props) => {
return (
<>
<Script src="https://accounts.google.com/gsi/client" async defer onLoad={loadScript} />
<div className="w-full" id="googleSignInButton" ref={googleSignInButton}></div>
<div className="w-full" id="googleSignInButton" ref={googleSignInButton} />
</>
);
};
5 changes: 5 additions & 0 deletions apps/app/components/account/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
export * from "./google-login";
export * from "./email-code-form";
export * from "./email-password-form";
export * from "./github-login-button";
export * from "./email-signin-form";
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from "react";
import { useRouter } from "next/router";
import Link from "next/link";

// icons
import { ArrowLeftIcon } from "@heroicons/react/24/outline";

Expand Down Expand Up @@ -32,29 +32,27 @@ type BreadcrumbItemProps = {
icon?: any;
};

const BreadcrumbItem: React.FC<BreadcrumbItemProps> = ({ title, link, icon }) => {
return (
<>
{link ? (
<Link href={link}>
<a className="border-r-2 border-gray-300 px-3 text-sm">
<p className={`${icon ? "flex items-center gap-2" : ""}`}>
{icon ?? null}
{title}
</p>
</a>
</Link>
) : (
<div className="px-3 text-sm">
const BreadcrumbItem: React.FC<BreadcrumbItemProps> = ({ title, link, icon }) => (
<>
{link ? (
<Link href={link}>
<a className="border-r-2 border-gray-300 px-3 text-sm">
<p className={`${icon ? "flex items-center gap-2" : ""}`}>
{icon}
{icon ?? null}
{title}
</p>
</div>
)}
</>
);
};
</a>
</Link>
) : (
<div className="px-3 text-sm">
<p className={`${icon ? "flex items-center gap-2" : ""}`}>
{icon}
{title}
</p>
</div>
)}
</>
);

Breadcrumbs.BreadcrumbItem = BreadcrumbItem;

Expand Down
Loading