mirror of
https://github.com/makeplane/plane.git
synced 2026-07-13 05:49:40 +02:00
Merge pull request #1266 from makeplane/sync/11032831758
sync: community changes
This commit is contained in:
@@ -130,7 +130,7 @@ export const IssueBlock = observer((props: IssueBlockProps) => {
|
||||
};
|
||||
|
||||
//TODO: add better logic. This is to have a min width for ID/Key based on the length of project identifier
|
||||
const keyMinWidth = (projectIdentifier?.length ?? 0) * 7;
|
||||
const keyMinWidth = displayProperties?.key ? (projectIdentifier?.length ?? 0) * 7 : 0;
|
||||
|
||||
return (
|
||||
<ControlLink
|
||||
@@ -178,7 +178,6 @@ export const IssueBlock = observer((props: IssueBlockProps) => {
|
||||
</>
|
||||
}
|
||||
disabled={issue.project_id === projectId}
|
||||
renderByDefault={false}
|
||||
>
|
||||
<div className="flex-shrink-0 grid place-items-center w-3.5 absolute left-1">
|
||||
<MultipleSelectEntityAction
|
||||
@@ -196,13 +195,14 @@ export const IssueBlock = observer((props: IssueBlockProps) => {
|
||||
</div>
|
||||
</Tooltip>
|
||||
)}
|
||||
{displayProperties && displayProperties?.key && (
|
||||
{displayProperties && (displayProperties.key || displayProperties.issue_type) && (
|
||||
<div className="flex-shrink-0" style={{ minWidth: `${keyMinWidth}px` }}>
|
||||
{issue.project_id && (
|
||||
<IssueIdentifier
|
||||
issueId={issueId}
|
||||
projectId={issue.project_id}
|
||||
textContainerClassName="text-xs font-medium text-custom-text-300"
|
||||
displayProperties={displayProperties}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
@@ -293,4 +293,4 @@ export const IssueBlock = observer((props: IssueBlockProps) => {
|
||||
</Row>
|
||||
</ControlLink>
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -4,7 +4,6 @@ import { FC, ReactNode } from "react";
|
||||
import { observer } from "mobx-react";
|
||||
import { useParams } from "next/navigation";
|
||||
import useSWR from "swr";
|
||||
import useSWRImmutable from "swr/immutable";
|
||||
|
||||
// components
|
||||
import { JoinProject } from "@/components/auth-screens";
|
||||
@@ -23,12 +22,13 @@ import {
|
||||
useProjectView,
|
||||
useUserPermissions,
|
||||
} from "@/hooks/store";
|
||||
// local
|
||||
import { persistence } from "@/local-db/storage.sqlite";
|
||||
// plane web constants
|
||||
import { EUserPermissions, EUserPermissionsLevel } from "@/plane-web/constants/user-permissions";
|
||||
// plane web hooks
|
||||
import { useIssueTypes } from "@/plane-web/hooks/store";
|
||||
// images
|
||||
import { persistence } from "@/local-db/storage.sqlite";
|
||||
import emptyProject from "@/public/empty-state/onboarding/dashboard-light.webp";
|
||||
|
||||
interface IProjectAuthWrapper {
|
||||
|
||||
@@ -16,13 +16,14 @@ import { LogoSpinner } from "@/components/common";
|
||||
import { useMember, useProject, useUser, useUserPermissions, useWorkspace } from "@/hooks/store";
|
||||
import { useFavorite } from "@/hooks/store/use-favorite";
|
||||
import { usePlatformOS } from "@/hooks/use-platform-os";
|
||||
// local
|
||||
import { persistence } from "@/local-db/storage.sqlite";
|
||||
// constants
|
||||
import { EUserPermissions, EUserPermissionsLevel } from "@/plane-web/constants/user-permissions";
|
||||
// plane web hooks
|
||||
import { useFlag, useIssueTypes, useWorkspaceFeatures, useWorkspaceProjectStates } from "@/plane-web/hooks/store";
|
||||
import { useFeatureFlags } from "@/plane-web/hooks/store/use-feature-flags";
|
||||
// images
|
||||
import { persistence } from "@/local-db/storage.sqlite";
|
||||
import { EWorkspaceFeatures } from "@/plane-web/types/workspace-feature";
|
||||
import PlaneBlackLogo from "@/public/plane-logos/black-horizontal-with-blue-logo.png";
|
||||
import PlaneWhiteLogo from "@/public/plane-logos/white-horizontal-with-blue-logo.png";
|
||||
|
||||
@@ -3,7 +3,7 @@ if (typeof window !== "undefined" && window) {
|
||||
window.requestIdleCallback =
|
||||
window.requestIdleCallback ??
|
||||
function (cb) {
|
||||
var start = Date.now();
|
||||
const start = Date.now();
|
||||
return setTimeout(function () {
|
||||
cb({
|
||||
didTimeout: false,
|
||||
|
||||
@@ -55,7 +55,7 @@ export class Storage {
|
||||
try {
|
||||
const storageManager = window.navigator.storage;
|
||||
const fileSystemDirectoryHandle = await storageManager.getDirectory();
|
||||
//@ts-expect-error
|
||||
//@ts-expect-error , clear local issue cache
|
||||
await fileSystemDirectoryHandle.remove({ recursive: true });
|
||||
} catch (e) {
|
||||
console.error("Error clearing sqlite sync storage", e);
|
||||
|
||||
@@ -77,9 +77,7 @@ export const getMetaKeysFragment = (queries: any) => {
|
||||
}
|
||||
});
|
||||
|
||||
let sql;
|
||||
|
||||
sql = ` ('${Array.from(fields).join("','")}')`;
|
||||
const sql = ` ('${Array.from(fields).join("','")}')`;
|
||||
|
||||
return sql;
|
||||
};
|
||||
|
||||
@@ -408,6 +408,7 @@ export class ProjectStore implements IProjectStore {
|
||||
} catch (error) {
|
||||
console.log("Failed to delete project from project store");
|
||||
this.fetchProjects(workspaceSlug);
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ import { TUserPermissions } from "@plane/types/src/enums";
|
||||
import { API_BASE_URL } from "@/helpers/common.helper";
|
||||
// local
|
||||
import { persistence } from "@/local-db/storage.sqlite";
|
||||
import { ENABLE_LOCAL_DB_CACHE } from "@/plane-web/constants/issues";
|
||||
import { EUserPermissions } from "@/plane-web/constants/user-permissions";
|
||||
// services
|
||||
import { AuthService } from "@/services/auth.service";
|
||||
@@ -19,7 +20,6 @@ import { IAccountStore } from "@/store/user/account.store";
|
||||
import { ProfileStore, IUserProfileStore } from "@/store/user/profile.store";
|
||||
import { IUserPermissionStore, UserPermissionStore } from "./permissions.store";
|
||||
import { IUserSettingsStore, UserSettingsStore } from "./settings.store";
|
||||
import { ENABLE_LOCAL_DB_CACHE } from "@/plane-web/constants/issues";
|
||||
|
||||
type TUserErrorStatus = {
|
||||
status: string;
|
||||
|
||||
@@ -81,11 +81,11 @@ export class ProfileStore implements IUserProfileStore {
|
||||
|
||||
// helper action
|
||||
mutateUserProfile = (data: Partial<TUserProfile>) => {
|
||||
if (!data) return
|
||||
if (!data) return;
|
||||
Object.entries(data).forEach(([key, value]) => {
|
||||
if (key in this.data) set(this.data, key, value);
|
||||
})
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// actions
|
||||
/**
|
||||
@@ -129,7 +129,7 @@ export class ProfileStore implements IUserProfileStore {
|
||||
}
|
||||
const userProfile = await this.userService.updateCurrentUserProfile(data);
|
||||
return userProfile;
|
||||
} catch (error) {
|
||||
} catch {
|
||||
if (currentUserProfileData) {
|
||||
this.mutateUserProfile(currentUserProfileData);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user