From 6012d78d83a83cbc58dedb83eac6b827cb74b336 Mon Sep 17 00:00:00 2001 From: Armagan Dalkiran <77741597+armagandalkiran@users.noreply.github.com> Date: Mon, 16 Dec 2024 01:31:28 +0300 Subject: [PATCH] Revert "style: ui improvements" --- gurubu-backend/utils/groomings.js | 2 +- gurubu-client/package.json | 1 - .../room/grooming-board-jira-table.tsx | 184 ---------- .../app/components/room/grooming-board.tsx | 313 +++++++++--------- .../app/components/room/grooming-navbar.tsx | 5 +- .../components/room/import-jira-issues.tsx | 1 - gurubu-client/src/app/services/jiraService.ts | 5 +- .../app/shared/helpers/convertJiraMarkdown.ts | 45 --- gurubu-client/src/app/shared/interfaces.ts | 1 - .../room/grooming-board-jira-table.scss | 166 ---------- .../room/grooming-board-participants.scss | 4 +- .../src/app/styles/room/grooming-board.scss | 37 +-- .../src/app/styles/room/grooming-navbar.scss | 2 - gurubu-client/src/app/styles/room/style.scss | 1 - gurubu-client/yarn.lock | 5 - 15 files changed, 166 insertions(+), 606 deletions(-) delete mode 100644 gurubu-client/src/app/components/room/grooming-board-jira-table.tsx delete mode 100644 gurubu-client/src/app/shared/helpers/convertJiraMarkdown.ts delete mode 100644 gurubu-client/src/app/styles/room/grooming-board-jira-table.scss diff --git a/gurubu-backend/utils/groomings.js b/gurubu-backend/utils/groomings.js index 5d70b90..2ee5df5 100644 --- a/gurubu-backend/utils/groomings.js +++ b/gurubu-backend/utils/groomings.js @@ -393,7 +393,7 @@ const cleanRoomsAndUsers = () => { clearUser(room.roomID); } }); - }, 60000 * 60 * 3); // work every 3 hours + }, 60000 * 10); // work every 10 minutes }; const updateNickName = (credentials, newNickName, roomID, socket) => { diff --git a/gurubu-client/package.json b/gurubu-client/package.json index 3c1f107..c65c9cd 100644 --- a/gurubu-client/package.json +++ b/gurubu-client/package.json @@ -11,7 +11,6 @@ "dependencies": { "@tabler/icons-react": "^2.40.0", "axios": "^1.6.0", - "marked": "^15.0.4", "next": "14.0.0", "react": "^18", "react-dom": "^18", diff --git a/gurubu-client/src/app/components/room/grooming-board-jira-table.tsx b/gurubu-client/src/app/components/room/grooming-board-jira-table.tsx deleted file mode 100644 index 8b416c5..0000000 --- a/gurubu-client/src/app/components/room/grooming-board-jira-table.tsx +++ /dev/null @@ -1,184 +0,0 @@ -import { useGroomingRoom } from "@/contexts/GroomingRoomContext"; -import { useSocket } from "@/contexts/SocketContext"; -import { JiraService } from "@/services/jiraService"; -import { convertJiraToMarkdown } from "@/shared/helpers/convertJiraMarkdown"; -import { IconChevronLeft, IconChevronRight } from "@tabler/icons-react"; -import { marked } from "marked"; -import React, { useState } from "react"; - -interface IProps { - roomId: string; - customFieldName: string; -} - -const GroomingBoardJiraTable = ({ roomId, customFieldName }: IProps) => { - const { userInfo, groomingInfo } = useGroomingRoom(); - const socket = useSocket(); - - const [currentIssueIndex, setCurrentIssueIndex] = useState(0); - - const jiraService = new JiraService(process.env.NEXT_PUBLIC_API_URL || ""); - - const selectedIssueIndex = groomingInfo.issues?.findIndex( - (issue) => issue.selected - ); - - const renderer = new marked.Renderer(); - renderer.link = ({ - href, - title, - tokens, - }: { - href: string; - title?: string | null; - tokens: any[]; - }) => { - const text = marked.Parser.parse(tokens); - return `${text}`; - }; - - const formattedDescription = marked.parse( - convertJiraToMarkdown( - groomingInfo.issues?.[selectedIssueIndex]?.description - ), - { renderer } - ); - - const handleSetVote = async () => { - if (groomingInfo.isResultShown && groomingInfo.issues.length > 0) { - const selectedIssue = groomingInfo.issues.find((issue) => issue.selected); - if (selectedIssue && customFieldName != "") { - const selectedIssueId = selectedIssue.id; - var response = await jiraService.setEstimation( - selectedIssueId, - groomingInfo.score, - customFieldName - ); - if (response.isSuccess) { - selectedIssue.point = groomingInfo.score.toString(); - socket.emit( - "setIssues", - roomId, - groomingInfo.issues, - userInfo.lobby.credentials - ); - } - } - } - }; - - const handleNextIssue = () => { - if (currentIssueIndex < groomingInfo.issues.length - 1) { - const nextIssueIndex = currentIssueIndex + 1; - setCurrentIssueIndex(nextIssueIndex); - const updatedIssues = groomingInfo.issues.map((issue, index) => ({ - ...issue, - selected: index === nextIssueIndex, - })); - socket.emit( - "setIssues", - roomId, - updatedIssues, - userInfo.lobby.credentials - ); - socket.emit("resetVotes", roomId, userInfo.lobby.credentials); - } - }; - - const handlePrevIssue = () => { - if (selectedIssueIndex > 0) { - const prevIssueIndex = selectedIssueIndex - 1; - setCurrentIssueIndex(prevIssueIndex); - const updatedIssues = groomingInfo.issues.map((issue, index) => ({ - ...issue, - selected: index === prevIssueIndex, - })); - socket.emit( - "setIssues", - roomId, - updatedIssues, - userInfo.lobby.credentials - ); - socket.emit("resetVotes", roomId, userInfo.lobby.credentials); - } - }; - - if (!(groomingInfo.issues && groomingInfo.issues.length > 0)) { - return null; - } - - return ( - - - Jira Table - - - - - Issue - Summary - Points - - - - {groomingInfo.issues.map( - (issue) => - issue.selected && ( - - - - {issue.key} - - - {issue.summary} - {issue.point} - - ) - )} - - - - {userInfo.lobby?.isAdmin && ( - - - - - Previous - - - Next - - - - - - Set Vote - - - - )} - - ); -}; - -export default GroomingBoardJiraTable; diff --git a/gurubu-client/src/app/components/room/grooming-board.tsx b/gurubu-client/src/app/components/room/grooming-board.tsx index 6ae1b2e..27e6e72 100644 --- a/gurubu-client/src/app/components/room/grooming-board.tsx +++ b/gurubu-client/src/app/components/room/grooming-board.tsx @@ -4,23 +4,21 @@ import { useRouter } from "next/navigation"; import Image from "next/image"; import { notFound } from "next/navigation"; import { useSocket } from "@/contexts/SocketContext"; -import { - checkUserJoinedLobbyBefore, - getCurrentLobby, -} from "@/shared/helpers/lobbyStorage"; +import { checkUserJoinedLobbyBefore, getCurrentLobby } from "@/shared/helpers/lobbyStorage"; import { useGroomingRoom } from "@/contexts/GroomingRoomContext"; import VotingStick from "./voting-stick"; import MetricAverages from "./metric-averages"; import GroomingBoardParticipants from "./grooming-board-participants"; import { IconEdit, IconReportAnalytics } from "@tabler/icons-react"; import { ROOM_STATUS } from "../../room/[id]/enums"; -import { EncounteredError, GroomingInfo } from "@/shared/interfaces"; +import { EncounteredError, GroomingInfo, Issue } from "@/shared/interfaces"; import { ENCOUTERED_ERROR_TYPE, GroomingMode } from "@/shared/enums"; import GroomingBoardErrorPopup from "./grooming-board-error-popup"; import { MetricToggleTooltip } from "../metricToggle/metricToggleTooltip"; +import { JiraService } from "@/services/jiraService"; import { StoryPointCustomFieldForm } from "@/components/room/story-point-custom-field"; import { Modal } from "../common/modal"; -import GroomingBoardJiraTable from "./grooming-board-jira-table"; + interface IProps { roomId: string; @@ -28,21 +26,24 @@ interface IProps { setShowNickNameForm: (value: boolean) => void; } -const GroomingBoard = ({ - roomId, - showNickNameForm, - setShowNickNameForm, -}: IProps) => { +const GroomingBoard = ({ roomId, showNickNameForm, setShowNickNameForm }: IProps) => { const socket = useSocket(); const router = useRouter(); const [editVoteClicked, setEditVoteClicked] = useState(false); - const [customFieldName, setCustomFieldName] = useState( - process.env.NEXT_PUBLIC_STORY_POINT_CUSTOM_FIELD || "" - ); + const [currentIssueIndex, setCurrentIssueIndex] = useState(0); + const [customFieldName, setCustomFieldName] = useState(""); const [hoveredMetric, setHoveredMetric] = useState(null); + const jiraService = new JiraService(process.env.NEXT_PUBLIC_API_URL || ""); + type ModalType = "storyPointCustomField" | null; + const [selectedModal, setSelectedModal] = useState(null); const [modalOpen, setModalOpen] = useState(false); + const openModal = (modalType: ModalType) => { + setModalOpen(true); + setSelectedModal(modalType); + }; + const closeModal = () => { setModalOpen(false); }; @@ -57,17 +58,11 @@ const GroomingBoard = ({ roomStatus, setEncounteredError, encounteredError, - setShowErrorPopup, + setShowErrorPopup } = useGroomingRoom(); const isGroomingInfoLoaded = Boolean(Object.keys(groomingInfo).length); - const showVotingStick = - (editVoteClicked || - !groomingInfo.isResultShown || - groomingInfo.mode === GroomingMode.PlanningPoker) && - isGroomingInfoLoaded; - useEffect(() => { const handleInitialize = (data: GroomingInfo) => { if (data?.participants[lobby.userID]) { @@ -84,6 +79,7 @@ const GroomingBoard = ({ const handleUpdateNickName = (data: GroomingInfo) => setGroomingInfo(data); + const setIssues = (data: GroomingInfo) => { setGroomingInfo(data); }; @@ -103,8 +99,7 @@ const GroomingBoard = ({ } }; - const handleUserDisconnected = (data: GroomingInfo) => - setGroomingInfo(data); + const handleUserDisconnected = (data: GroomingInfo) => setGroomingInfo(data); const handleEncounteredError = (data: EncounteredError) => { if (data.id === ENCOUTERED_ERROR_TYPE.CONNECTION_ERROR) { @@ -129,7 +124,7 @@ const GroomingBoard = ({ }); } - socket.on("disconnect", (reason) => { + socket.on('disconnect', (reason) => { setShowErrorPopup(true); }); @@ -164,7 +159,7 @@ const GroomingBoard = ({ setEncounteredError, setShowErrorPopup, router, - userInfo, + userInfo ]); const handleShowResultsClick = () => { @@ -193,18 +188,54 @@ const GroomingBoard = ({ if (encounteredError.id === ENCOUTERED_ERROR_TYPE.ROOM_EXPIRED) { notFound(); } + const handleNextIssue = () => { + if (currentIssueIndex < groomingInfo.issues.length - 1) { + const nextIssueIndex = currentIssueIndex + 1; + setCurrentIssueIndex(nextIssueIndex); + const updatedIssues = groomingInfo.issues.map((issue, index) => ({ + ...issue, + selected: index === nextIssueIndex + })); + socket.emit("setIssues", roomId, updatedIssues, userInfo.lobby.credentials); + socket.emit("resetVotes", roomId, userInfo.lobby.credentials); + } + }; + + const handlePrevIssue = () => { + if (currentIssueIndex > 0) { + const prevIssueIndex = currentIssueIndex - 1; + setCurrentIssueIndex(prevIssueIndex); + const updatedIssues = groomingInfo.issues.map((issue, index) => ({ + ...issue, + selected: index === prevIssueIndex + })); + socket.emit("setIssues", roomId, updatedIssues, userInfo.lobby.credentials); + socket.emit("resetVotes", roomId, userInfo.lobby.credentials); + } + }; + + const handleSetVote = async () => { + if (groomingInfo.isResultShown && groomingInfo.issues.length > 0) { + const selectedIssue = groomingInfo.issues.find(issue => issue.selected); + if (selectedIssue && customFieldName != "") { + const selectedIssueId = selectedIssue.id; + var response = await jiraService.setEstimation(selectedIssueId, groomingInfo.score, customFieldName); + if (response.isSuccess) { + selectedIssue.point = groomingInfo.score.toString(); + socket.emit("setIssues", roomId, groomingInfo.issues, userInfo.lobby.credentials); + } + } + } + }; + + return ( - + {!editVoteClicked && groomingInfo.isResultShown && - isGroomingInfoLoaded && - groomingInfo.mode === GroomingMode.ScoreGrooming && ( + isGroomingInfoLoaded && ( {groomingInfo.score} )} - {showVotingStick && ( - - {groomingInfo.metrics?.map((metric) => ( - - ))} - - )} - {!editVoteClicked && } - {groomingInfo.isResultShown && - groomingInfo.mode === GroomingMode.ScoreGrooming && ( - - - {editVoteClicked ? "Back to Results" : "Edit Vote"} - {editVoteClicked ? ( - - ) : ( - - )} - - - )} - {!editVoteClicked && - groomingInfo.isResultShown && - isGroomingInfoLoaded && - groomingInfo.mode === GroomingMode.PlanningPoker && ( - - - {groomingInfo.score} - - )} - - {userInfo.lobby?.isAdmin && - isGroomingInfoLoaded && - groomingInfo.mode === GroomingMode.ScoreGrooming && ( - - - Reset Votes - - - Show Results - {!groomingInfo.isResultShown && ( - - )} - + {(editVoteClicked || !groomingInfo.isResultShown) && + isGroomingInfoLoaded && ( + + {groomingInfo.metrics?.map((metric) => ( + + ))} )} + {!editVoteClicked && } + {groomingInfo.isResultShown && ( + + + {editVoteClicked ? "Back to Results" : "Edit Vote"} + {editVoteClicked ? : } + + + )}{groomingInfo.issues && groomingInfo.issues.length > 0 && ( + + <> + + + + Issue + Summary + Points + + + + {groomingInfo.issues.map(issue => issue.selected && ( + + + + {issue.key} + + + {issue.summary} + {issue.point} + + ))} + + + {userInfo.lobby?.isAdmin && ( + + {groomingInfo.mode === GroomingMode.PlanningPoker && ( + + + Set Vote + + openModal("storyPointCustomField")}> + Set story point field + + + )} + + Previous + + + Next + + )} + > + + )} + {userInfo.lobby?.isAdmin && isGroomingInfoLoaded && ( + + + Reset Votes + + + Show Results + {!groomingInfo.isResultShown && ( + + )} + + + )} {!isGroomingInfoLoaded && renderLoading()} @@ -307,8 +348,7 @@ const GroomingBoard = ({ <> - Participants - + Participants {groomingInfo.metrics?.map((metric) => ( - {userInfo.lobby?.isAdmin && - isGroomingInfoLoaded && - groomingInfo.mode === GroomingMode.PlanningPoker && ( - - - Show Results - {!groomingInfo.isResultShown && ( - - )} - - - Reset Votes - - - )} > )} {!isGroomingInfoLoaded && renderLoading()} @@ -367,11 +370,7 @@ const GroomingBoard = ({ - + ); diff --git a/gurubu-client/src/app/components/room/grooming-navbar.tsx b/gurubu-client/src/app/components/room/grooming-navbar.tsx index d495cbb..b9018da 100644 --- a/gurubu-client/src/app/components/room/grooming-navbar.tsx +++ b/gurubu-client/src/app/components/room/grooming-navbar.tsx @@ -7,8 +7,6 @@ import { ImportJiraIssuesForm } from "@/components/room/import-jira-issues"; import GroomingBoardProfile from "./grooming-board-profile"; import Image from "next/image"; import ThemeSelector from "./theme-selector"; -import { GroomingMode } from "@/shared/enums"; -import Logo from "../common/logo"; interface Props { showNickNameForm: boolean; @@ -63,7 +61,6 @@ const GroomingNavbar = ({ showNickNameForm, roomId }: Props) => { return ( - { Link - {userInfo.lobby?.isAdmin && groomingInfo?.mode === GroomingMode.PlanningPoker && ( + {userInfo.lobby?.isAdmin && ( { ({ id: issue.id, key: issue.key, url: `${this.getJiraUrl()}/browse/${issue.key}`, summary: issue.fields.summary, - point: issue.fields[customFieldName], - description: issue.fields.description + point: issue.fields[customFieldName] })); return { isSuccess: true, data: sprintIssues }; } catch (error) { diff --git a/gurubu-client/src/app/shared/helpers/convertJiraMarkdown.ts b/gurubu-client/src/app/shared/helpers/convertJiraMarkdown.ts deleted file mode 100644 index 296b444..0000000 --- a/gurubu-client/src/app/shared/helpers/convertJiraMarkdown.ts +++ /dev/null @@ -1,45 +0,0 @@ -export const convertJiraToMarkdown = (jiraText: string) => { - let converted = jiraText; - - // Convert {**}text{**} to **text** (Bold) - converted = converted?.replace(/\{\*\}([^{}]*)\{\*\}/g, "**$1**"); - - // Handle cases where {*}x{*} means x is a bullet and bold - converted = converted?.replace(/\{\*\}([^{}]*)\{\*\}/g, "- **$1**"); - - // Bold the entire string, including the word and the colon - converted = converted?.replace(/\{\*\}([^{}]+):\{\*\}/g, "**$1:**"); - - // Convert table structure ||Header||Header||Header|| to Markdown table - converted = converted?.replace( - /\|\|([^|]*)\|\|([^|]*)\|\|([^|]*)\|\|/g, - "| $1 | $2 | $3 |\n|---|---|---|" - ); - - // Convert {code:java}...{code} to ```java...``` - converted = converted?.replace(/\{code:java\}([\s\S]*?)\{code\}/g, "```java\n$1\n```"); - - // Handle \r\n or \n multiple consecutive newlines by replacing with markdown line breaks - let newlineCount = (converted?.match(/\r\n/g) || []).length; - - // Adjust text based on the number of consecutive newlines - if (newlineCount > 1) { - converted = converted?.replace(/\r\n+/g, '\n\n'); // Multiple consecutive \r\n will result in double newlines - } - - // Convert \r\n (carriage return) or \n (newline) to a Markdown line break - converted = converted?.replace(/\r\n|\n/g, " \n"); // Markdown line breaks - - // Convert # to ordered list (Treating lines starting with # as ordered list items) - converted = converted?.replace(/^#\s(.*)/gm, (match, p1) => { - return `- ${p1}`; // Convert to ordered list item with dash `-` - }); - - // Handle numbered lists (1. 2. 3. ... into Markdown numbering) - converted = converted?.replace(/^(\d+)\. (.*)$/gm, "$1. $2"); - - // Ensure sorting doesn't break the list numbers (sorted list example) - converted = converted?.replace(/(\d+)\. (\d+)\./g, '$1. $2.'); - - return converted || ""; -}; diff --git a/gurubu-client/src/app/shared/interfaces.ts b/gurubu-client/src/app/shared/interfaces.ts index d089841..8cdd183 100644 --- a/gurubu-client/src/app/shared/interfaces.ts +++ b/gurubu-client/src/app/shared/interfaces.ts @@ -76,7 +76,6 @@ export interface Issue { url: string; fields: any; summary: string; - description: string; point: string; selected: boolean; } diff --git a/gurubu-client/src/app/styles/room/grooming-board-jira-table.scss b/gurubu-client/src/app/styles/room/grooming-board-jira-table.scss deleted file mode 100644 index 23be190..0000000 --- a/gurubu-client/src/app/styles/room/grooming-board-jira-table.scss +++ /dev/null @@ -1,166 +0,0 @@ -.grooming-board-jira-table-container { - width: 100%; - margin: 0 auto; - background-color: #fff; - border-radius: 0.5rem; - box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); - .grooming-board-jira-table-header { - padding: 1.5rem; - border-bottom: 1px solid #e5e7eb; - - h2 { - color: #0055d6; - font-size: 1.5rem; - font-weight: 600; - } - } - .grooming-board-jira-table-search { - position: relative; - - input { - width: 100%; - padding: 0.5rem 0.75rem 0.5rem 2.5rem; - border: 1px solid #d1d5db; - border-radius: 0.375rem; - font-size: 0.875rem; - - &:focus { - outline: none; - border-color: #3b82f6; - box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.5); - } - } - - svg { - position: absolute; - left: 0.75rem; - top: 50%; - transform: translateY(-50%); - color: #9ca3af; - } - } - .grooming-board-jira-table { - width: 100%; - border-collapse: collapse; - - tr { - cursor: pointer; - &:hover { - background-color: $gray-20; - } - } - - th, - td { - padding: 0.75rem 1rem; - text-align: left; - border-bottom: 1px solid #e5e7eb; - color: #333333; - } - - th { - font-weight: 600; - color: #4b5563; - } - - td { - &:last-child { - text-align: right; - } - } - - &-issue-link { - color: #2563eb; - - &:hover { - color: #1d4ed8; - } - } - - &-footer { - display: flex; - flex-direction: column; - align-items: center; - gap: 1rem; - padding: 1.5rem; - border-top: 1px solid #e5e7eb; - - @media (min-width: 640px) { - flex-direction: row; - justify-content: space-between; - } - } - - &-navigation { - display: flex; - gap: 0.5rem; - } - - &-vote { - display: flex; - flex-direction: column; - align-items: center; - gap: 0.5rem; - - @media (min-width: 640px) { - margin-left: auto; - } - } - - &-button { - padding: 0.5rem 1rem; - border-radius: 0.375rem; - font-size: 0.875rem; - font-weight: 500; - cursor: pointer; - transition: background-color 0.2s; - display: flex; - align-items: center; - justify-content: center; - - &--primary { - background-color: #0055d6; - color: #fff; - border: none; - - &:hover { - background-color: #2563eb; - } - } - - &--secondary { - background-color: #fff; - color: #4b5563; - border: 1px solid #d1d5db; - - &:hover { - background-color: #f3f4f6; - } - - &:disabled { - opacity: 0.5; - cursor: not-allowed; - } - } - } - } - .grooming-board-jira-issue-description { - color: #333333; - width: 100%; - height: 200px; - border: none; - overflow: auto; - outline: none; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - resize: none; - &:disabled{ - background-color: $white; - } - padding: 0.75rem 1rem; - display: flex; - flex-direction: column; - gap: 4px; - } -} diff --git a/gurubu-client/src/app/styles/room/grooming-board-participants.scss b/gurubu-client/src/app/styles/room/grooming-board-participants.scss index 2be6f1b..1304428 100644 --- a/gurubu-client/src/app/styles/room/grooming-board-participants.scss +++ b/gurubu-client/src/app/styles/room/grooming-board-participants.scss @@ -2,9 +2,7 @@ display: flex; align-items: center; flex-direction: column; - max-height: 75%; - overflow-y: scroll; - position: relative; + max-height: 80%; li { width: 100%; border-top: 1px solid $gray-100; diff --git a/gurubu-client/src/app/styles/room/grooming-board.scss b/gurubu-client/src/app/styles/room/grooming-board.scss index 6c74610..684d161 100644 --- a/gurubu-client/src/app/styles/room/grooming-board.scss +++ b/gurubu-client/src/app/styles/room/grooming-board.scss @@ -8,13 +8,10 @@ justify-content: space-between; &__playground { width: 60%; - height: 90%; + height: 80%; display: flex; justify-content: space-between; flex-direction: column; - &.story-point-mode { - justify-content: flex-start; - } } &__results { display: flex; @@ -64,28 +61,6 @@ align-items: center; justify-content: center; gap: 0 $space-xlarge; - - &.story-point-mode { - margin-top: $space-large; - flex-direction: column; - gap: $space-small; - margin-top: auto; - height: fit-content; - .grooming-board__reset-votes-button { - width: 100%; - display: flex; - align-items: center; - justify-content: center; - padding: $space-small 0; - } - .grooming-board__show-result-button { - width: 100%; - display: flex; - align-items: center; - justify-content: center; - padding: $space-small 0; - } - } } &__reset-votes-button { border: none; @@ -134,8 +109,6 @@ &__logs-section { height: 90%; border-radius: $radius-medium; - display: flex; - flex-direction: column; } &__metrics { display: flex; @@ -143,20 +116,20 @@ justify-content: flex-end; margin-right: 2px; align-items: center; - li, - span { + li,span{ color: $gray-600; font-size: $font-size-paragraph-5; line-height: $line-height-paragraph-5; font-weight: $medium; } - li { + li{ position: relative; cursor: pointer; max-width: 80px; text-align: center; &:hover { - .toggle-tooltip { + .toggle-tooltip + { display: block; } } diff --git a/gurubu-client/src/app/styles/room/grooming-navbar.scss b/gurubu-client/src/app/styles/room/grooming-navbar.scss index a0618ef..d692de4 100644 --- a/gurubu-client/src/app/styles/room/grooming-navbar.scss +++ b/gurubu-client/src/app/styles/room/grooming-navbar.scss @@ -8,8 +8,6 @@ //replace with this after new score body comes with padding: padding: $space-xlarge $space-body; padding: $space-xlarge $space-xxxlarge; - border-bottom: 1px solid $gray-20; - &__user-section { display: flex; align-items: center; diff --git a/gurubu-client/src/app/styles/room/style.scss b/gurubu-client/src/app/styles/room/style.scss index 6e13c82..d17b6e7 100644 --- a/gurubu-client/src/app/styles/room/style.scss +++ b/gurubu-client/src/app/styles/room/style.scss @@ -17,7 +17,6 @@ @import "./import-jira-issues.scss"; @import "./story-point-custom-field.scss"; @import "./themes/theme.scss"; -@import "./grooming-board-jira-table.scss"; .create-room { position: absolute; diff --git a/gurubu-client/yarn.lock b/gurubu-client/yarn.lock index 797554f..2da54dd 100644 --- a/gurubu-client/yarn.lock +++ b/gurubu-client/yarn.lock @@ -1655,11 +1655,6 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -marked@^15.0.4: - version "15.0.4" - resolved "https://registry.yarnpkg.com/marked/-/marked-15.0.4.tgz#864dbf50227b6507646c771c2ef5f0de2924833e" - integrity sha512-TCHvDqmb3ZJ4PWG7VEGVgtefA5/euFmsIhxtD0XsBxI39gUSKL81mIRFdt0AiNQozUahd4ke98ZdirExd/vSEw== - merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
{groomingInfo.score}