fix(tasks): allow collaborative editor sharing in task lists
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m1s

This commit is contained in:
sandrodach committed 2026-10-27 17:35:47 +01:00
1 parent 2ecf71cc42
commit e7eb94be45
2 files changed
+28 -6

No files matched your search

+27 -6
View File
@@ -24,6 +24,7 @@ export interface UnifiedShareModalProps {
teams: Team[];
collaborators: User[];
allowRoleSelection?: boolean; // Default true (editor vs viewer)
fixedPermission?: 'editor' | 'viewer'; // When allowRoleSelection is false, force fixedPermission (default 'viewer' for documents, 'editor' for tasks/lists)
onAddShare: (targetType: 'team' | 'user', targetId: string, permission: 'editor' | 'viewer') => Promise<void>;
onRemoveShare: (shareId: string) => Promise<void>;
}
@@ -40,14 +41,16 @@ export const UnifiedShareModal: React.FC<UnifiedShareModalProps> = ({
teams,
collaborators,
allowRoleSelection = true,
fixedPermission,
onAddShare,
onRemoveShare,
}) => {
const effectiveFixedPerm = fixedPermission || 'viewer';
const [shareType, setShareType] = useState<'team' | 'user'>('team');
const [selectedTeamId, setSelectedTeamId] = useState('');
const [selectedUser, setSelectedUser] = useState<User | null>(null);
const [selectedPermission, setSelectedPermission] = useState<'editor' | 'viewer'>(
allowRoleSelection ? 'editor' : 'viewer'
allowRoleSelection ? 'editor' : effectiveFixedPerm
);
const [loading, setLoading] = useState(false);
const [error, setError] = useState<string | null>(null);
@@ -65,7 +68,7 @@ export const UnifiedShareModal: React.FC<UnifiedShareModalProps> = ({
setLoading(true);
try {
const permToUse = allowRoleSelection ? selectedPermission : 'viewer';
const permToUse = allowRoleSelection ? selectedPermission : effectiveFixedPerm;
await onAddShare(shareType, targetId, permToUse);
setSelectedTeamId('');
setSelectedUser(null);
@@ -211,8 +214,17 @@ export const UnifiedShareModal: React.FC<UnifiedShareModalProps> = ({
</select>
) : (
<span className="inline-flex items-center gap-1 text-[11px] text-muted px-2 py-1 bg-panel rounded border border-border shrink-0 self-center">
<Lock className="w-3 h-3 text-faint" />
Nur Lesen
{effectiveFixedPerm === 'editor' ? (
<>
<Check className="w-3 h-3 text-accent" />
Bearbeiten
</>
) : (
<>
<Lock className="w-3 h-3 text-faint" />
Nur Lesen
</>
)}
</span>
)}
</div>
@@ -240,8 +252,17 @@ export const UnifiedShareModal: React.FC<UnifiedShareModalProps> = ({
</select>
) : (
<span className="inline-flex items-center gap-1 text-[11px] text-muted px-2 py-1 bg-panel rounded border border-border shrink-0 self-center">
<Lock className="w-3 h-3 text-faint" />
Nur Lesen
{effectiveFixedPerm === 'editor' ? (
<>
<Check className="w-3 h-3 text-accent" />
Bearbeiten
</>
) : (
<>
<Lock className="w-3 h-3 text-faint" />
Nur Lesen
</>
)}
</span>
)}
</div>
@@ -1978,6 +1978,7 @@ export const TasksView: React.FC<TasksViewProps> = ({
teams={safeTeams}
collaborators={safeCollaborators}
allowRoleSelection={false}
fixedPermission="editor"
onAddShare={async (targetType, targetId) => {
await api.addTaskListShare(sharingTaskList.id, {
targetType,