feat: Initial clean release of CHM
一些检查失败了
automerge / automerge (push) Has been cancelled
react-native-android-build-apk / AssembleRelease (push) Has been cancelled
Build macOS M1 / Main (push) Has been cancelled
Joplin Continuous Integration / Main (macos-15-intel) (push) Has been cancelled
Joplin Continuous Integration / Main (ubuntu-22.04) (push) Has been cancelled
Joplin Continuous Integration / Main (ubuntu-22.04-arm) (push) Has been cancelled
Joplin Continuous Integration / Main (windows-11-vs2026-arm) (push) Has been cancelled
Joplin Continuous Integration / Main (windows-2025) (push) Has been cancelled
Joplin Continuous Integration / ServerDockerImage (ubuntu-22.04) (push) Has been cancelled
Joplin Continuous Integration / ServerDockerImage (ubuntu-22.04-arm) (push) Has been cancelled
Joplin UI tests / Main (ubuntu-22.04) (push) Has been cancelled
Joplin UI tests / Main (windows-2025) (push) Has been cancelled
Joplin UI tests / Mobile (push) Has been cancelled
Close stale issues / ProcessStaleIssues (push) Has been cancelled
一些检查失败了
automerge / automerge (push) Has been cancelled
react-native-android-build-apk / AssembleRelease (push) Has been cancelled
Build macOS M1 / Main (push) Has been cancelled
Joplin Continuous Integration / Main (macos-15-intel) (push) Has been cancelled
Joplin Continuous Integration / Main (ubuntu-22.04) (push) Has been cancelled
Joplin Continuous Integration / Main (ubuntu-22.04-arm) (push) Has been cancelled
Joplin Continuous Integration / Main (windows-11-vs2026-arm) (push) Has been cancelled
Joplin Continuous Integration / Main (windows-2025) (push) Has been cancelled
Joplin Continuous Integration / ServerDockerImage (ubuntu-22.04) (push) Has been cancelled
Joplin Continuous Integration / ServerDockerImage (ubuntu-22.04-arm) (push) Has been cancelled
Joplin UI tests / Main (ubuntu-22.04) (push) Has been cancelled
Joplin UI tests / Main (windows-2025) (push) Has been cancelled
Joplin UI tests / Mobile (push) Has been cancelled
Close stale issues / ProcessStaleIssues (push) Has been cancelled
这个提交包含在:
@@ -0,0 +1,42 @@
|
||||
import * as React from 'react';
|
||||
import { PluginSettings } from '@joplin/lib/services/plugins/PluginService';
|
||||
import configScreenStyles from '../../configScreenStyles';
|
||||
import Setting from '@joplin/lib/models/Setting';
|
||||
import { Store } from 'redux';
|
||||
import PluginStates from '../PluginStates';
|
||||
import { AppState } from '../../../../../utils/types';
|
||||
import { useCallback, useState } from 'react';
|
||||
import TestProviderStack from '../../../../testing/TestProviderStack';
|
||||
|
||||
interface WrapperProps {
|
||||
initialPluginSettings: PluginSettings;
|
||||
store: Store<AppState>;
|
||||
}
|
||||
const shouldShowBasedOnSettingSearchQuery = ()=>true;
|
||||
|
||||
const PluginStatesWrapper = (props: WrapperProps) => {
|
||||
const styles = configScreenStyles(Setting.THEME_LIGHT);
|
||||
|
||||
const [pluginSettings, setPluginSettings] = useState(() => {
|
||||
return props.initialPluginSettings ?? {};
|
||||
});
|
||||
|
||||
const updatePluginStates = useCallback((newStates: PluginSettings) => {
|
||||
setPluginSettings(newStates);
|
||||
Setting.setValue('plugins.states', newStates);
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<TestProviderStack store={props.store}>
|
||||
<PluginStates
|
||||
styles={styles}
|
||||
themeId={Setting.THEME_LIGHT}
|
||||
updatePluginStates={updatePluginStates}
|
||||
pluginSettings={pluginSettings}
|
||||
shouldShowBasedOnSearchQuery={shouldShowBasedOnSettingSearchQuery}
|
||||
/>
|
||||
</TestProviderStack>
|
||||
);
|
||||
};
|
||||
|
||||
export default PluginStatesWrapper;
|
||||
@@ -0,0 +1,17 @@
|
||||
import RepositoryApi from '@joplin/lib/services/plugins/RepositoryApi';
|
||||
import { createTempDir, supportDir } from '@joplin/lib/testing/test-utils';
|
||||
import { remove } from 'fs-extra';
|
||||
|
||||
let repoTempDir: string|null = null;
|
||||
const mockRepositoryApiConstructor = async () => {
|
||||
if (repoTempDir) {
|
||||
await remove(repoTempDir);
|
||||
}
|
||||
repoTempDir = await createTempDir();
|
||||
|
||||
RepositoryApi.ofDefaultJoplinRepo = jest.fn((_tempDirPath: string, appType, installMode) => {
|
||||
return new RepositoryApi(`${supportDir}/pluginRepo`, repoTempDir, appType, installMode);
|
||||
});
|
||||
};
|
||||
|
||||
export default mockRepositoryApiConstructor;
|
||||
@@ -0,0 +1,13 @@
|
||||
import { AppType } from '@joplin/lib/models/Setting';
|
||||
import RepositoryApi, { InstallMode } from '@joplin/lib/services/plugins/RepositoryApi';
|
||||
import { createTempDir, supportDir } from '@joplin/lib/testing/test-utils';
|
||||
|
||||
|
||||
const newRepoApi = async (installMode: InstallMode, appVersion = '3.0.0'): Promise<RepositoryApi> => {
|
||||
const appInfo = { type: AppType.Mobile, version: appVersion };
|
||||
const repo = new RepositoryApi(`${supportDir}/pluginRepo`, await createTempDir(), appInfo, installMode);
|
||||
await repo.reinitialize();
|
||||
return repo;
|
||||
};
|
||||
|
||||
export default newRepoApi;
|
||||
在新工单中引用
屏蔽一个用户