mirror of
https://github.com/willchen96/mike.git
synced 2026-06-10 20:35:12 +02:00
- Refine CourtListener citation verification, bulk lookup logging, and API fallback behavior - Persist cancelled chat stream output and render cancellation as the final assistant message - Add document/version deletion safety fixes and shared warning/modal UI updates - Sync document panel, case law panel, and response UI styling refinements - Harden OSS sync script to preserve local env, dependency, and generated files
57 lines
1.6 KiB
TypeScript
57 lines
1.6 KiB
TypeScript
"use client";
|
|
|
|
import { Lock } from "lucide-react";
|
|
import { WarningPopup } from "./WarningPopup";
|
|
|
|
interface Props {
|
|
open: boolean;
|
|
onClose: () => void;
|
|
/** Short headline above the body, e.g. "Owner-only action". */
|
|
title?: string;
|
|
/** Sentence describing what the user tried to do. */
|
|
action?: string;
|
|
/** Email of the project/resource owner, shown so the user knows who to ask. */
|
|
ownerEmail?: string | null;
|
|
/** Override the default message entirely. */
|
|
message?: string;
|
|
}
|
|
|
|
/**
|
|
* Lightweight "you don't have permission" modal shown when a non-owner
|
|
* attempts an owner-only action (manage people, rename, delete, …) on a
|
|
* shared project. Replaces the silent 404 the backend would otherwise
|
|
* return so the user understands why the action didn't go through.
|
|
*/
|
|
export function OwnerOnlyModal({
|
|
open,
|
|
onClose,
|
|
title = "Owner-only action",
|
|
action,
|
|
ownerEmail,
|
|
message,
|
|
}: Props) {
|
|
if (!open) return null;
|
|
|
|
const body =
|
|
message ??
|
|
(action
|
|
? `Only the project owner can ${action}.`
|
|
: "Only the project owner can perform this action.");
|
|
|
|
return (
|
|
<WarningPopup
|
|
open={open}
|
|
onClose={onClose}
|
|
title={title}
|
|
message={body}
|
|
icon={<Lock className="h-3.5 w-3.5 shrink-0 text-red-600" />}
|
|
>
|
|
{ownerEmail && (
|
|
<p className="mt-1 text-xs text-gray-600">
|
|
Ask <span className="text-gray-600">{ownerEmail}</span> if
|
|
you need access.
|
|
</p>
|
|
)}
|
|
</WarningPopup>
|
|
);
|
|
}
|