diff --git a/src/pages/FileSharing.jsx b/src/pages/FileSharing.jsx index 88e0d92..2cb16d8 100644 --- a/src/pages/FileSharing.jsx +++ b/src/pages/FileSharing.jsx @@ -270,12 +270,16 @@ async function fbqProxy(op, path, extra = {}) { throw new Error(`Unsupported operation: ${op}`); } +function safeName(v) { + return String(v || '').trim().replace(/[\\/:*?"<>|#%{}^~[\]`]+/g, '-').replace(/\s+/g, ' ').replace(/^-+|-+$/g, ''); +} + function rootPath(user) { if (!user || user.role === 'team' || user.role === 'external') return '/'; const companies = user.companies?.filter(Boolean) ?? []; - if (companies.length > 1) return '/Clients'; + if (companies.length > 1) return '/'; const name = companies[0]?.name ?? user.company?.name; - return name ? `/Clients/${name}` : '/'; + return name ? `/${safeName(name)}` : '/'; } function parsePath(path) { diff --git a/src/pages/Tasks.jsx b/src/pages/Tasks.jsx index fd93ba9..e277b74 100644 --- a/src/pages/Tasks.jsx +++ b/src/pages/Tasks.jsx @@ -73,7 +73,7 @@ function TasksStatsRow({ tasks = [] }) { function TasksPageShell({ statsTasks = [], projects = [], onAddProject = null, children }) { const [projSortKey, setProjSortKey] = useState('status'); const [projSortDir, setProjSortDir] = useState('asc'); - const [projTab, setProjTab] = useState('all'); + const [projTab, setProjTab] = useState('active'); const toggleProjSort = (col) => { if (projSortKey === col) setProjSortDir(d => d === 'asc' ? 'desc' : 'asc'); else { setProjSortKey(col); setProjSortDir('asc'); } @@ -193,7 +193,7 @@ export default function RequestsPage() { }); const [error, setError] = useState(''); const [loadError, setLoadError] = useState(false); - const [activeTab, setActiveTab] = useState('all'); + const [activeTab, setActiveTab] = useState('not_started'); const [filterCompany, setFilterCompany] = useState(''); const [filterProject, setFilterProject] = useState(''); const { sortKey, sortDir, toggle, sort } = useSortable('status', 'asc');