mirror of
https://github.com/hex248/sprint.git
synced 2026-02-07 18:23:03 +00:00
highlighting implementation
This commit is contained in:
@@ -29,10 +29,12 @@ export function IssuesTable({
|
|||||||
columns = {},
|
columns = {},
|
||||||
className,
|
className,
|
||||||
filters,
|
filters,
|
||||||
|
highlighted,
|
||||||
}: {
|
}: {
|
||||||
columns?: { id?: boolean; title?: boolean; description?: boolean; status?: boolean; assignee?: boolean };
|
columns?: { id?: boolean; title?: boolean; description?: boolean; status?: boolean; assignee?: boolean };
|
||||||
className: string;
|
className: string;
|
||||||
filters?: IssuesTableFilters;
|
filters?: IssuesTableFilters;
|
||||||
|
highlighted?: number[];
|
||||||
}) {
|
}) {
|
||||||
const { selectedProjectId, selectedIssueId, selectIssue } = useSelection();
|
const { selectedProjectId, selectedIssueId, selectIssue } = useSelection();
|
||||||
const { data: issuesData = [] } = useIssues(selectedProjectId);
|
const { data: issuesData = [] } = useIssues(selectedProjectId);
|
||||||
@@ -188,7 +190,7 @@ export function IssuesTable({
|
|||||||
<TableCell
|
<TableCell
|
||||||
className={cn(
|
className={cn(
|
||||||
"font-medium border-r text-right p-0",
|
"font-medium border-r text-right p-0",
|
||||||
isSelected &&
|
(isSelected || highlighted?.includes(issueData.Issue.id)) &&
|
||||||
"shadow-[inset_1px_1px_0_0_var(--personality),inset_0_-1px_0_0_var(--personality)]",
|
"shadow-[inset_1px_1px_0_0_var(--personality),inset_0_-1px_0_0_var(--personality)]",
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
@@ -205,7 +207,7 @@ export function IssuesTable({
|
|||||||
<TableCell
|
<TableCell
|
||||||
className={cn(
|
className={cn(
|
||||||
"min-w-0 p-0",
|
"min-w-0 p-0",
|
||||||
isSelected &&
|
(isSelected || highlighted?.includes(issueData.Issue.id)) &&
|
||||||
"shadow-[inset_0_1px_0_0_var(--personality),inset_0_-1px_0_0_var(--personality)]",
|
"shadow-[inset_0_1px_0_0_var(--personality),inset_0_-1px_0_0_var(--personality)]",
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
@@ -237,7 +239,7 @@ export function IssuesTable({
|
|||||||
<TableCell
|
<TableCell
|
||||||
className={cn(
|
className={cn(
|
||||||
"overflow-hidden p-0",
|
"overflow-hidden p-0",
|
||||||
isSelected &&
|
(isSelected || highlighted?.includes(issueData.Issue.id)) &&
|
||||||
"shadow-[inset_0_1px_0_0_var(--personality),inset_0_-1px_0_0_var(--personality)]",
|
"shadow-[inset_0_1px_0_0_var(--personality),inset_0_-1px_0_0_var(--personality)]",
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
@@ -254,7 +256,7 @@ export function IssuesTable({
|
|||||||
<TableCell
|
<TableCell
|
||||||
className={cn(
|
className={cn(
|
||||||
"h-[32px] p-0",
|
"h-[32px] p-0",
|
||||||
isSelected &&
|
(isSelected || highlighted?.includes(issueData.Issue.id)) &&
|
||||||
"shadow-[inset_0_1px_0_0_var(--personality),inset_-1px_0_0_0_var(--personality),inset_0_-1px_0_0_var(--personality)]",
|
"shadow-[inset_0_1px_0_0_var(--personality),inset_-1px_0_0_0_var(--personality),inset_0_-1px_0_0_var(--personality)]",
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -167,6 +167,8 @@ export default function Issues() {
|
|||||||
} = useSelection();
|
} = useSelection();
|
||||||
const location = useLocation();
|
const location = useLocation();
|
||||||
|
|
||||||
|
const [highlighted, setHighlighted] = useState<number[]>([]);
|
||||||
|
|
||||||
const deepLinkParams = useMemo(() => {
|
const deepLinkParams = useMemo(() => {
|
||||||
const params = new URLSearchParams(location.search);
|
const params = new URLSearchParams(location.search);
|
||||||
const orgSlug = params.get("o")?.trim().toLowerCase() ?? "";
|
const orgSlug = params.get("o")?.trim().toLowerCase() ?? "";
|
||||||
@@ -667,7 +669,12 @@ export default function Issues() {
|
|||||||
<ResizablePanelGroup className={`flex-1`}>
|
<ResizablePanelGroup className={`flex-1`}>
|
||||||
<ResizablePanel id={"left"} minSize={400}>
|
<ResizablePanel id={"left"} minSize={400}>
|
||||||
<div className="border w-full flex-shrink">
|
<div className="border w-full flex-shrink">
|
||||||
<IssuesTable columns={{ description: false }} className="w-full" filters={issueFilters} />
|
<IssuesTable
|
||||||
|
columns={{ description: false }}
|
||||||
|
className="w-full"
|
||||||
|
filters={issueFilters}
|
||||||
|
highlighted={highlighted}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</ResizablePanel>
|
</ResizablePanel>
|
||||||
|
|
||||||
@@ -696,7 +703,7 @@ export default function Issues() {
|
|||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
<Chat />
|
<Chat setHighlighted={setHighlighted} />
|
||||||
</main>
|
</main>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user