mirror of
https://github.com/spacedriveapp/spacedrive.git
synced 2026-04-21 06:59:17 -04:00
* Fix onboarding sometimes not redirecting to Explorer on prod builds - Fix failure trying to compile landing prod builds outside Vercel - Fix Server docker failing to restart due to some incorrecting logic for creating the unprivileged users erroring out - Fix Storybook failing to build due to updates to Vite - Update Storybook dependencies - Remove unused Inter font dependency - Fix some incorrect references to NodeJS types inside web code - Fix $libraryId index using the incorrect redirect function - Improve error handling for the $libraryId index route - Fix Prism not being correctly loaded, and failing to register its plugins - Improve Prism loading error handling - Small improvement to the text highlight logic - Fix SCSS deprecation for untyped hsl values - Fix library query cache incorrectly saving empty values, which lead to the onboarding redirect bug - Patch contentLayer to fix an error during the final part of it's build process - Update most dev dependencies - Update publish-artifact to be compatible with new @actions/artifact - Fix issue with new vite-plugin-solid failing to build our .ts files due to the removal of the typescript plugin - Fix pnpm overrides not applying due to incorrect placement in package.json - Replace deprecated react-tsparticles and updated three used by the Bubbles background in the landing page - Rework Bubbles background to be compatible with new @tsparticles/react - Update @sd/config dependencies - Update @sd/scripts dependencies * Implement suggestions - Replace mobile JS node setup with custom setup-pnpm action - Handle GITHUB_SECRET default value in code and throw a warning when it is not set - Fix pnpm now resolving the correct node version when building Spacedrive server docker - Add missing getent command to spacedrive server docker - Fix typo in entrypoint.sh - Implement a more robust check if the user is already in a group - Fix adduser failing due to missing default group - Disconnect IntersectionObserver on component unmount - Improve prism import comment * Implement more suggestions - Pin genent version to latest stable release of UClibc - Add checksum checks for all ADD clauses in Spacedrive server Dockerfile * Increase Maestro timeout to reduce CI failures due to slow simulator startup * Dowgrade maestro to workaround CI timeout * Improvements to the script that run maestro mobile tests - Increase the amount of retries for a maestro test run to 6 - Increase Maestro driver startup timeout to 2 minutes * Let run-maestro-tests.sh decide how to run itself * ¯\_(ツ)_/¯
57 lines
1.5 KiB
TypeScript
57 lines
1.5 KiB
TypeScript
import { Copy, Scissors } from '@phosphor-icons/react';
|
|
import { ContextMenu, ModifierKeys } from '@sd/ui';
|
|
import { useLocale } from '~/hooks';
|
|
import { useKeybindFactory } from '~/hooks/useKeybindFactory';
|
|
import { isNonEmpty } from '~/util';
|
|
|
|
import { useExplorerContext } from '../../Context';
|
|
import { useExplorerCopyPaste } from '../../hooks/useExplorerCopyPaste';
|
|
import { ConditionalItem } from '../ConditionalItem';
|
|
import { useContextMenuContext } from '../context';
|
|
|
|
import type {} from '@sd/client';
|
|
|
|
export const CutCopyItems = new ConditionalItem({
|
|
useCondition: () => {
|
|
const { parent } = useExplorerContext();
|
|
const { selectedFilePaths, selectedEphemeralPaths } = useContextMenuContext();
|
|
|
|
if (
|
|
(parent?.type !== 'Location' && parent?.type !== 'Ephemeral') ||
|
|
(!isNonEmpty(selectedFilePaths) && !isNonEmpty(selectedEphemeralPaths))
|
|
)
|
|
return null;
|
|
|
|
return { parent, selectedFilePaths, selectedEphemeralPaths };
|
|
},
|
|
Component: () => {
|
|
const { t } = useLocale();
|
|
const keybind = useKeybindFactory();
|
|
const { copy, cut, duplicate } = useExplorerCopyPaste();
|
|
|
|
return (
|
|
<>
|
|
<ContextMenu.Item
|
|
label={t('cut')}
|
|
keybind={keybind([ModifierKeys.Control], ['X'])}
|
|
onClick={cut}
|
|
icon={Scissors}
|
|
/>
|
|
|
|
<ContextMenu.Item
|
|
label={t('copy')}
|
|
keybind={keybind([ModifierKeys.Control], ['C'])}
|
|
onClick={copy}
|
|
icon={Copy}
|
|
/>
|
|
|
|
<ContextMenu.Item
|
|
label={t('duplicate')}
|
|
keybind={keybind([ModifierKeys.Control], ['D'])}
|
|
onClick={duplicate}
|
|
/>
|
|
</>
|
|
);
|
|
}
|
|
});
|