Fixes before deploy (#1167)
This commit is contained in:
@ -6,40 +6,62 @@ type Props = React.ComponentProps<'div'> & {
|
|||||||
workspaceLogo?: string | null;
|
workspaceLogo?: string | null;
|
||||||
};
|
};
|
||||||
|
|
||||||
const StyledLogo = styled.div`
|
const StyledContainer = styled.div`
|
||||||
height: 48px;
|
height: 48px;
|
||||||
margin-bottom: ${({ theme }) => theme.spacing(4)};
|
margin-bottom: ${({ theme }) => theme.spacing(4)};
|
||||||
margin-top: ${({ theme }) => theme.spacing(4)};
|
margin-top: ${({ theme }) => theme.spacing(4)};
|
||||||
|
|
||||||
img {
|
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
position: relative;
|
position: relative;
|
||||||
width: 48px;
|
width: 48px;
|
||||||
`;
|
`;
|
||||||
|
|
||||||
type StyledWorkspaceLogoProps = {
|
const StyledTwentyLogo = styled.img`
|
||||||
|
border-radius: ${({ theme }) => theme.border.radius.xs};
|
||||||
|
height: 24px;
|
||||||
|
width: 24px;
|
||||||
|
`;
|
||||||
|
|
||||||
|
const StyledTwentyLogoContainer = styled.div`
|
||||||
|
align-items: center;
|
||||||
|
background-color: ${({ theme }) => theme.background.primary};
|
||||||
|
border-radius: ${({ theme }) => theme.border.radius.sm};
|
||||||
|
bottom: ${({ theme }) => `-${theme.spacing(3)}`};
|
||||||
|
display: flex;
|
||||||
|
height: 28px;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
|
position: absolute;
|
||||||
|
right: ${({ theme }) => `-${theme.spacing(3)}`};
|
||||||
|
width: 28px;
|
||||||
|
`;
|
||||||
|
|
||||||
|
type StyledMainLogoProps = {
|
||||||
logo?: string | null;
|
logo?: string | null;
|
||||||
};
|
};
|
||||||
|
|
||||||
const StyledWorkspaceLogo = styled.div<StyledWorkspaceLogoProps>`
|
const StyledMainLogo = styled.div<StyledMainLogoProps>`
|
||||||
background: url(${(props) => props.logo});
|
background: url(${(props) => props.logo});
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
border-radius: ${({ theme }) => theme.border.radius.xs};
|
height: 100%;
|
||||||
bottom: ${({ theme }) => `-${theme.spacing(3)}`};
|
|
||||||
height: ${({ theme }) => theme.spacing(6)};
|
width: 100%;
|
||||||
position: absolute;
|
|
||||||
right: ${({ theme }) => `-${theme.spacing(3)}`};
|
|
||||||
width: ${({ theme }) => theme.spacing(6)};
|
|
||||||
`;
|
`;
|
||||||
|
|
||||||
export function Logo({ workspaceLogo, ...props }: Props) {
|
export function Logo({ workspaceLogo, ...props }: Props) {
|
||||||
|
if (!workspaceLogo) {
|
||||||
|
return (
|
||||||
|
<StyledContainer {...props}>
|
||||||
|
<StyledMainLogo logo="/icons/android/android-launchericon-192-192.png" />
|
||||||
|
</StyledContainer>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<StyledLogo {...props}>
|
<StyledContainer {...props}>
|
||||||
<StyledWorkspaceLogo logo={getImageAbsoluteURIOrBase64(workspaceLogo)} />
|
<StyledMainLogo logo={getImageAbsoluteURIOrBase64(workspaceLogo)} />
|
||||||
<img src="/icons/android/android-launchericon-192-192.png" alt="logo" />
|
<StyledTwentyLogoContainer>
|
||||||
</StyledLogo>
|
<StyledTwentyLogo src="/icons/android/android-launchericon-192-192.png" />
|
||||||
|
</StyledTwentyLogoContainer>
|
||||||
|
</StyledContainer>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -76,7 +76,7 @@ export function SignInUpForm() {
|
|||||||
|
|
||||||
const title = useMemo(() => {
|
const title = useMemo(() => {
|
||||||
if (signInUpMode === SignInUpMode.Invite) {
|
if (signInUpMode === SignInUpMode.Invite) {
|
||||||
return `Join ${workspace?.displayName ?? ''} Team`;
|
return `Join ${workspace?.displayName ?? ''} team`;
|
||||||
}
|
}
|
||||||
|
|
||||||
return signInUpMode === SignInUpMode.SignIn
|
return signInUpMode === SignInUpMode.SignIn
|
||||||
|
|||||||
@ -12,6 +12,7 @@ const StyledContainer = styled.div`
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: ${({ theme }) => theme.spacing(2)};
|
gap: ${({ theme }) => theme.spacing(2)};
|
||||||
|
margin-bottom: ${({ theme }) => theme.spacing(2)};
|
||||||
`;
|
`;
|
||||||
|
|
||||||
const StyledTitleContainer = styled.div`
|
const StyledTitleContainer = styled.div`
|
||||||
@ -32,7 +33,6 @@ const StyledListContainer = styled.div`
|
|||||||
border-radius: ${({ theme }) => theme.spacing(1)};
|
border-radius: ${({ theme }) => theme.spacing(1)};
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
max-height: ${({ theme }) => theme.spacing(35)};
|
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
`;
|
`;
|
||||||
|
|||||||
@ -91,16 +91,13 @@ export function EntityBoardColumn({
|
|||||||
/>
|
/>
|
||||||
</BoardCardIdContext.Provider>
|
</BoardCardIdContext.Provider>
|
||||||
))}
|
))}
|
||||||
<Draggable draggableId={`new-${column.id}`} index={cardIds.length}>
|
<Draggable
|
||||||
|
draggableId={`new-${column.id}`}
|
||||||
|
index={cardIds.length}
|
||||||
|
isDragDisabled={true}
|
||||||
|
>
|
||||||
{(draggableProvided) => (
|
{(draggableProvided) => (
|
||||||
<div
|
<div ref={draggableProvided?.innerRef}>
|
||||||
ref={draggableProvided?.innerRef}
|
|
||||||
{...{
|
|
||||||
...draggableProvided.dragHandleProps,
|
|
||||||
draggable: false,
|
|
||||||
}}
|
|
||||||
{...draggableProvided?.draggableProps}
|
|
||||||
>
|
|
||||||
<StyledNewCardButtonContainer>
|
<StyledNewCardButtonContainer>
|
||||||
<RecoilScope>{boardOptions.newCardComponent}</RecoilScope>
|
<RecoilScope>{boardOptions.newCardComponent}</RecoilScope>
|
||||||
</StyledNewCardButtonContainer>
|
</StyledNewCardButtonContainer>
|
||||||
|
|||||||
@ -38,6 +38,7 @@ const StyledInput = styled.input<{
|
|||||||
variant: CheckboxVariant;
|
variant: CheckboxVariant;
|
||||||
indeterminate?: boolean;
|
indeterminate?: boolean;
|
||||||
shape?: CheckboxShape;
|
shape?: CheckboxShape;
|
||||||
|
isChecked: boolean;
|
||||||
}>`
|
}>`
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
@ -79,9 +80,11 @@ const StyledInput = styled.input<{
|
|||||||
width: var(--size);
|
width: var(--size);
|
||||||
}
|
}
|
||||||
|
|
||||||
&:checked + label:before {
|
& + label:before {
|
||||||
background: ${({ theme }) => theme.color.blue};
|
background: ${({ theme, isChecked }) =>
|
||||||
border-color: ${({ theme }) => theme.color.blue};
|
isChecked ? theme.color.blue : 'inherit'};
|
||||||
|
border-color: ${({ theme, isChecked }) =>
|
||||||
|
isChecked ? theme.color.blue : 'inherit'};
|
||||||
}
|
}
|
||||||
|
|
||||||
& + label > svg {
|
& + label > svg {
|
||||||
@ -112,7 +115,6 @@ export function Checkbox({
|
|||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
setIsInternalChecked(checked);
|
setIsInternalChecked(checked);
|
||||||
}, [checked]);
|
}, [checked]);
|
||||||
|
|
||||||
function handleChange(value: boolean) {
|
function handleChange(value: boolean) {
|
||||||
onChange?.(value);
|
onChange?.(value);
|
||||||
setIsInternalChecked(!isInternalChecked);
|
setIsInternalChecked(!isInternalChecked);
|
||||||
@ -130,6 +132,7 @@ export function Checkbox({
|
|||||||
variant={variant}
|
variant={variant}
|
||||||
checkboxSize={size}
|
checkboxSize={size}
|
||||||
shape={shape}
|
shape={shape}
|
||||||
|
isChecked={isInternalChecked}
|
||||||
onChange={(event) => handleChange(event.target.checked)}
|
onChange={(event) => handleChange(event.target.checked)}
|
||||||
/>
|
/>
|
||||||
<label htmlFor="checkbox">
|
<label htmlFor="checkbox">
|
||||||
|
|||||||
@ -19,7 +19,20 @@ const StyledLayout = styled.div`
|
|||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
scrollbar-color: ${({ theme }) => theme.border.color.medium};
|
||||||
|
|
||||||
|
scrollbar-width: 4px;
|
||||||
width: 100vw;
|
width: 100vw;
|
||||||
|
|
||||||
|
*::-webkit-scrollbar {
|
||||||
|
height: 4px;
|
||||||
|
width: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
*::-webkit-scrollbar-thumb {
|
||||||
|
background-color: ${({ theme }) => theme.border.color.medium};
|
||||||
|
border-radius: ${({ theme }) => theme.border.radius.sm};
|
||||||
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
const NAVBAR_WIDTH = '236px';
|
const NAVBAR_WIDTH = '236px';
|
||||||
|
|||||||
@ -14,6 +14,7 @@ export const ShowPageLeftContainer = styled.div`
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: ${({ theme }) => theme.spacing(3)};
|
gap: ${({ theme }) => theme.spacing(3)};
|
||||||
|
overflow-y: scroll;
|
||||||
padding: 0px ${({ theme }) => theme.spacing(3)};
|
padding: 0px ${({ theme }) => theme.spacing(3)};
|
||||||
width: ${({ theme }) => {
|
width: ${({ theme }) => {
|
||||||
const isMobile = useIsMobile();
|
const isMobile = useIsMobile();
|
||||||
|
|||||||
@ -6,3 +6,4 @@ CREATE DATABASE "test";
|
|||||||
|
|
||||||
-- Create a twenty user
|
-- Create a twenty user
|
||||||
CREATE USER twenty PASSWORD 'twenty';
|
CREATE USER twenty PASSWORD 'twenty';
|
||||||
|
ALTER USER twenty CREATEDB;
|
||||||
|
|||||||
@ -27,12 +27,6 @@ CREATE UNIQUE INDEX "views_workspaceId_type_objectId_name_key" ON "views"("works
|
|||||||
-- CreateIndex
|
-- CreateIndex
|
||||||
CREATE UNIQUE INDEX "viewFields_workspaceId_viewId_objectName_fieldName_key" ON "viewFields"("workspaceId", "viewId", "objectName", "fieldName");
|
CREATE UNIQUE INDEX "viewFields_workspaceId_viewId_objectName_fieldName_key" ON "viewFields"("workspaceId", "viewId", "objectName", "fieldName");
|
||||||
|
|
||||||
-- AddForeignKey
|
|
||||||
-- ALTER TABLE "pipeline_progresses" ADD CONSTRAINT "pipeline_progresses_companyId_fkey" FOREIGN KEY ("companyId") REFERENCES "companies"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
||||||
|
|
||||||
-- AddForeignKey
|
|
||||||
-- ALTER TABLE "pipeline_progresses" ADD CONSTRAINT "pipeline_progresses_personId_fkey" FOREIGN KEY ("personId") REFERENCES "people"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
||||||
|
|
||||||
-- AddForeignKey
|
-- AddForeignKey
|
||||||
ALTER TABLE "views" ADD CONSTRAINT "views_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
ALTER TABLE "views" ADD CONSTRAINT "views_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||||
|
|
||||||
|
|||||||
@ -282,7 +282,7 @@ model Person {
|
|||||||
/// @Validator.IsOptional()
|
/// @Validator.IsOptional()
|
||||||
avatarUrl String?
|
avatarUrl String?
|
||||||
|
|
||||||
company Company? @relation(fields: [companyId], references: [id])
|
company Company? @relation(fields: [companyId], references: [id], onDelete: SetNull)
|
||||||
companyId String?
|
companyId String?
|
||||||
/// @TypeGraphQL.omit(input: true, output: true)
|
/// @TypeGraphQL.omit(input: true, output: true)
|
||||||
workspace Workspace @relation(fields: [workspaceId], references: [id])
|
workspace Workspace @relation(fields: [workspaceId], references: [id])
|
||||||
@ -407,10 +407,10 @@ model ActivityTarget {
|
|||||||
workspaceId String
|
workspaceId String
|
||||||
|
|
||||||
personId String?
|
personId String?
|
||||||
person Person? @relation(fields: [personId], references: [id])
|
person Person? @relation(fields: [personId], references: [id], onDelete: Cascade)
|
||||||
|
|
||||||
companyId String?
|
companyId String?
|
||||||
company Company? @relation(fields: [companyId], references: [id])
|
company Company? @relation(fields: [companyId], references: [id], onDelete: Cascade)
|
||||||
|
|
||||||
/// @TypeGraphQL.omit(input: true, output: true)
|
/// @TypeGraphQL.omit(input: true, output: true)
|
||||||
deletedAt DateTime?
|
deletedAt DateTime?
|
||||||
@ -514,10 +514,10 @@ model PipelineProgress {
|
|||||||
updatedAt DateTime @updatedAt
|
updatedAt DateTime @updatedAt
|
||||||
|
|
||||||
companyId String?
|
companyId String?
|
||||||
company Company? @relation(fields: [companyId], references: [id])
|
company Company? @relation(fields: [companyId], references: [id], onDelete: Cascade)
|
||||||
|
|
||||||
personId String?
|
personId String?
|
||||||
person Person? @relation(fields: [personId], references: [id])
|
person Person? @relation(fields: [personId], references: [id], onDelete: Cascade)
|
||||||
|
|
||||||
@@map("pipeline_progresses")
|
@@map("pipeline_progresses")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user