Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions jestHelpers/setup.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,7 @@ jest.mock('cozy-dataproxy-lib', () => ({

// Mock cozy-flags with jest mock function that supports both flag checking and test mocking
jest.mock('cozy-flags', () => {
const mockFn = jest.fn(flagName => {
if (flagName === 'drive.highlight-new-items.enabled') {
return true
}
const mockFn = jest.fn(() => {
// Return false for all other flags to avoid issues
return false
})
Expand Down
9 changes: 0 additions & 9 deletions src/hooks/useFolderSort/index.spec.jsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { renderHook, act, waitFor } from '@testing-library/react'

import { useClient } from 'cozy-client'
import flag from 'cozy-flags'

import { useFolderSort } from './index'

Expand Down Expand Up @@ -30,7 +29,6 @@ jest.mock('@/modules/public/PublicProvider', () => ({
}))

const mockUseClient = useClient
const mockFlag = flag
const mockUsePublicContext = usePublicContext

describe('useFolderSort', () => {
Expand All @@ -48,13 +46,6 @@ describe('useFolderSort', () => {
}
mockUseClient.mockReturnValue(mockClient)

mockFlag.mockImplementation(flagName => {
if (flagName === 'drive.save-sort-choice.enabled') {
return true
}
return false
})

mockUsePublicContext.mockReturnValue({
isPublic: false
})
Expand Down
10 changes: 1 addition & 9 deletions src/hooks/useFolderSort/index.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { useCallback, useEffect, useState } from 'react'

import { useClient, Q } from 'cozy-client'
import flag from 'cozy-flags'

import { DEFAULT_SORT, SORT_BY_UPDATE_DATE } from '@/config/sort'
import { RECENT_FOLDER_ID, TRASH_DIR_ID } from '@/constants/config'
Expand Down Expand Up @@ -40,7 +39,7 @@ const useFolderSort = (

useEffect(() => {
const load = async (): Promise<void> => {
if (!client || !flag('drive.save-sort-choice.enabled') || isPublic) {
if (!client || isPublic) {
setIsSettingsLoaded(true)
return
}
Expand All @@ -67,13 +66,6 @@ const useFolderSort = (
async ({ attribute, order }: Sort) => {
setCurrentSort({ attribute, order })

if (!flag('drive.save-sort-choice.enabled')) {
logger.warn(
'Cannot persist sort: flag drive.save-sort-choice.enabled is not enabled'
)
return
}

if (!client) {
logger.warn('Cannot persist sort: client unavailable')
return
Expand Down
10 changes: 4 additions & 6 deletions src/hooks/useKeyboardShortcuts.spec.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,11 @@ jest.mock('cozy-sharing', () => ({
withLocales: component => component
}))

jest.mock('@/modules/upload/NewItemHighlightProvider', () => ({
useNewItemHighlightContext: jest.fn(() => ({ addItems: jest.fn() }))
}))

import { isFile } from 'cozy-client/dist/models/file'
import flag from 'cozy-flags'
import { useAlert } from 'cozy-ui/transpiled/react/providers/Alert'
import { useI18n } from 'twake-i18n'

Expand Down Expand Up @@ -207,11 +210,6 @@ describe('useKeyboardShortcuts', () => {
{ success: true, file: { _id: 'pasted-file' }, operation: OPERATION_COPY }
])

flag.mockImplementation(flagName => {
if (flagName === 'drive.keyboard-shortcuts.enabled') return true
return false
})

mockCopyFiles.mockClear()
mockCutFiles.mockClear()
mockClearClipboard.mockClear()
Expand Down
5 changes: 0 additions & 5 deletions src/hooks/useKeyboardShortcuts.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import { useDispatch } from 'react-redux'
import { isFile } from 'cozy-client/dist/models/file'
import CozyClient from 'cozy-client/types/CozyClient'
import { IOCozyFile } from 'cozy-client/types/types'
import flag from 'cozy-flags'
import { useAlert } from 'cozy-ui/transpiled/react/providers/Alert'
import { useI18n } from 'twake-i18n'

Expand Down Expand Up @@ -324,10 +323,6 @@ export const useKeyboardShortcuts = ({
}, [selectedItems, pushModal, popModal, refresh, allowDelete, showAlert, t])

useEffect(() => {
if (!flag('drive.keyboard-shortcuts.enabled')) {
return
}

const shortcuts: Record<string, (() => void | Promise<void>) | undefined> =
{
'Ctrl+c': handleCopy,
Expand Down
19 changes: 0 additions & 19 deletions src/hooks/useOnLongPress/helpers.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import flag from 'cozy-flags'

const DOUBLECLICKDELAY = 400

export const handleClick = ({
Expand All @@ -8,8 +6,6 @@ export const handleClick = ({
disabled,
isRenaming,
openLink,
toggle,
selectionModeActive,
lastClickTime,
setLastClickTime,
setSelectedItems,
Expand All @@ -23,21 +19,6 @@ export const handleClick = ({

clearHighlightedItems?.()

// simply remove this "if" the flag is not necessary anymore
if (!flag('drive.doubleclick.enabled')) {
if (selectionModeActive) {
if (flag('drive.dynamic-selection.enabled') && !event.shiftKey) {
event.stopPropagation()
setSelectedItems({ [file._id]: file })
onInteractWithFile?.(file._id, event)
return
}
return toggle(event)
} else {
return openLink(event)
}
}

const currentTime = Date.now()
const isDoubleClick = currentTime - lastClickTime < DOUBLECLICKDELAY

Expand Down
3 changes: 3 additions & 0 deletions src/hooks/useOnLongPress/helpers.spec.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -79,17 +79,20 @@
event = ev,
disabled = false,
isRenaming = false,
file = { _id: 'file-id' },
lastClickTime = new Date('2025-01-01T12:00:00.000Z').getTime() // date of the first click
}) => {
return {
params: {
event,
disabled,
isRenaming,
file,
openLink: mockOpenLink,
toggle: mockToggle,
lastClickTime,
setLastClickTime: jest.fn(),
setSelectedItems: jest.fn(),
onInteractWithFile: jest.fn()
}
}
Expand All @@ -101,7 +104,7 @@
})

// should create a real life test to replace toggle by final func
xit('should only toggle by default', () => {

Check warning on line 107 in src/hooks/useOnLongPress/helpers.spec.jsx

View workflow job for this annotation

GitHub Actions / Build and publish

Tests should not be skipped
const { params } = setup({})
handleClick(params)

Expand Down
20 changes: 0 additions & 20 deletions src/hooks/useUpdateFavicon/index.spec.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -149,26 +149,6 @@ describe('useUpdateFavicon', () => {
expect(mockLink.href).toBe('/original/favicon.ico')
})

it('should not update favicon when flag is disabled', () => {
mockFlag.mockReturnValue(false)

const file = {
_id: '1',
name: 'document.docx',
mime: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
}

const { getFileMimetype } = require('@/lib/getFileMimetype')
getFileMimetype.mockReturnValue(() => 'text')

const mockLink = createMockLinkElement('/assets/favicon.ico')
mockQuerySelectorAll.mockReturnValue([mockLink])

renderHook(() => useUpdateFavicon(file, 'loaded'))

expect(mockLink.href).toBe('/assets/favicon.ico')
})

it('should not update favicon when fetchStatus is not loaded', () => {
const file = {
_id: '1',
Expand Down
9 changes: 1 addition & 8 deletions src/hooks/useUpdateFavicon/index.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { useEffect, useRef } from 'react'

import { IOCozyFile } from 'cozy-client/types/types'
import flag from 'cozy-flags'

import { updateFavicon } from './helpers'

Expand All @@ -15,8 +14,6 @@ const useUpdateFavicon = (
const originalFaviconUrlRef = useRef<string>()

useEffect(() => {
if (!flag('drive.update-favicon.enabled')) return

const originalFavicon =
document.querySelector<HTMLLinkElement>("link[rel~='icon']")

Expand All @@ -34,11 +31,7 @@ const useUpdateFavicon = (
}, [])

useEffect(() => {
if (
fetchStatus !== 'loaded' ||
!file ||
!flag('drive.update-favicon.enabled')
) {
if (fetchStatus !== 'loaded' || !file) {
return
}

Expand Down
2 changes: 0 additions & 2 deletions src/lib/flags.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,4 @@ const flagsList = () => {
flag('drive.dacc-files-size-by-slug')
flag('drive.breadcrumb.showCompleteBreadcrumbOnPublicPage') // flagName should use kebab case
flag('drive.hide-nextcloud-dev')
flag('drive.keyboard-shortcuts.enabled', true)
flag('drive.highlight-new-items.enabled', true)
}
2 changes: 0 additions & 2 deletions src/modules/actions/components/personalizeFolder.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import React from 'react'

import flag from 'cozy-flags'
import { makeAction } from 'cozy-ui/transpiled/react/ActionsMenu/Actions/makeAction'
import PaletteIcon from 'cozy-ui/transpiled/react/Icons/Palette'

Expand All @@ -22,7 +21,6 @@ const personalizeFolder = ({
label,
icon,
displayCondition: docs =>
flag('drive.folder-personalization.enabled') &&
hasWriteAccess &&
docs.length === 1 &&
docs[0].type === 'directory' &&
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import React from 'react'

import flag from 'cozy-flags'
import ActionsMenuItem from 'cozy-ui/transpiled/react/ActionsMenu/ActionsMenuItem'
import Icon from 'cozy-ui/transpiled/react/Icon'
import PaletteIcon from 'cozy-ui/transpiled/react/Icons/Palette'
Expand All @@ -20,7 +19,6 @@ const PersonalizeFolderItem = ({
const { pushModal, popModal } = useModalContext()

if (
!flag('drive.folder-personalization.enabled') ||
!hasWriteAccess ||
!displayedFolder ||
displayedFolder.type !== 'directory'
Expand Down
2 changes: 0 additions & 2 deletions src/modules/filelist/icons/FileIconMime.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import PropTypes from 'prop-types'
import React from 'react'

import { isDirectory } from 'cozy-client/dist/models/file'
import flag from 'cozy-flags'
import Icon from 'cozy-ui/transpiled/react/Icon'

import { isEncryptedFolder } from '@/lib/encryption'
Expand All @@ -15,7 +14,6 @@ const FileIconMime = ({ file, size = 32, isEncrypted = false }) => {

if (
isDir &&
flag('drive.folder-personalization.enabled') &&
(file.metadata?.decorations?.color || file.metadata?.decorations?.icon)
) {
return (
Expand Down
12 changes: 3 additions & 9 deletions src/modules/layout/Layout.jsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import React, { Fragment, useEffect } from 'react'
import React, { useEffect } from 'react'
import { useDispatch, useSelector } from 'react-redux'
import { Outlet, useNavigate } from 'react-router-dom'

Expand Down Expand Up @@ -59,15 +59,9 @@ const LayoutContent = () => {
? !hasWriteAccess(displayedFolder._id, displayedFolder.driveId)
: false

const NewItemHighlightProviderWrapper = flag(
'drive.highlight-new-items.enabled'
)
? NewItemHighlightProvider
: Fragment

return (
<LayoutUI onContextMenu={ev => ev.preventDefault()}>
<NewItemHighlightProviderWrapper>
<NewItemHighlightProvider>
<BarComponent
searchOptions={{ enabled: !isMobile }}
disableInternalStore
Expand Down Expand Up @@ -117,7 +111,7 @@ const LayoutContent = () => {
</SelectionProvider>
<Sprite />
{flag('debug') && <CozyDevtools />}
</NewItemHighlightProviderWrapper>
</NewItemHighlightProvider>
</LayoutUI>
)
}
Expand Down
13 changes: 3 additions & 10 deletions src/modules/public/PublicLayout.jsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import React, { Fragment } from 'react'
import React from 'react'
import { Outlet } from 'react-router-dom'

import { BarComponent } from 'cozy-bar'
import flag from 'cozy-flags'
import FlagSwitcher from 'cozy-flags/dist/FlagSwitcher'
import Sprite from 'cozy-ui/transpiled/react/Icon/Sprite'
import { Layout } from 'cozy-ui/transpiled/react/Layout'
Expand All @@ -14,12 +13,6 @@ import { NewItemHighlightProvider } from '@/modules/upload/NewItemHighlightProvi
import UploadQueue from '@/modules/upload/UploadQueue'

const PublicLayout = () => {
const NewItemHighlightProviderWrapper = flag(
'drive.highlight-new-items.enabled'
)
? NewItemHighlightProvider
: Fragment

return (
<Layout>
<BarComponent
Expand All @@ -31,11 +24,11 @@ const PublicLayout = () => {
/>
<FlagSwitcher />
<UploadQueue />
<NewItemHighlightProviderWrapper>
<NewItemHighlightProvider>
<SelectionProvider>
<Outlet />
</SelectionProvider>
</NewItemHighlightProviderWrapper>
</NewItemHighlightProvider>
<Sprite />
</Layout>
)
Expand Down
Loading
Loading