@lvce-editor/source-control-worker 3.1.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1120,6 +1120,8 @@ const SourceControl$1 = 22;
1120
1120
 
1121
1121
  const None = 0;
1122
1122
 
1123
+ const Web = 1;
1124
+
1123
1125
  const ExtensionHostWorker = 44;
1124
1126
  const ExtensionManagementWorker = 9006;
1125
1127
  const IconThemeWorker = 7009;
@@ -1771,12 +1773,16 @@ const get$1 = key => {
1771
1773
  return getPreference(key);
1772
1774
  };
1773
1775
 
1774
- const getExtensions = async () => {
1775
- return invoke$1('Extensions.getExtensions');
1776
+ const isCompatible = (extension, platform) => {
1777
+ return platform !== Web || extension?.compatibility?.web !== false;
1778
+ };
1779
+ const getExtensions = async platform => {
1780
+ const extensions = await invoke$1('Extensions.getExtensions');
1781
+ return extensions.filter(extension => isCompatible(extension, platform));
1776
1782
  };
1777
1783
 
1778
- const requestSourceActions = async () => {
1779
- const extensions = await getExtensions();
1784
+ const requestSourceActions = async (platform = 0) => {
1785
+ const extensions = await getExtensions(platform);
1780
1786
  const newCache = Object.create(null);
1781
1787
  for (const extension of extensions) {
1782
1788
  if (!extension || !extension['source-control-actions']) {
@@ -1790,8 +1796,8 @@ const requestSourceActions = async () => {
1790
1796
  return newCache;
1791
1797
  };
1792
1798
 
1793
- const requestSourceControlButtons = async () => {
1794
- const extensions = await getExtensions();
1799
+ const requestSourceControlButtons = async (platform = 0) => {
1800
+ const extensions = await getExtensions(platform);
1795
1801
  const buttons = [];
1796
1802
  for (const extension of extensions) {
1797
1803
  if (!extension || !Array.isArray(extension['source-control-buttons'])) {
@@ -1858,6 +1864,7 @@ const GenerateCommitMessage$1 = 'Generate Commit Message';
1858
1864
  const Refresh$2 = 'Refresh';
1859
1865
  const MessageEnterToCommitOnMaster = `Message (Enter) to commit on 'master'`;
1860
1866
  const SourceControlInput$1 = 'Source Control Input';
1867
+ const NoSourceControlProvidersAvailableForWeb = 'No source control providers are available for web.';
1861
1868
 
1862
1869
  const openChanges = () => {
1863
1870
  return i18nString(OpenChanges);
@@ -1901,6 +1908,9 @@ const messageEnterToCommitOnMaster = () => {
1901
1908
  const sourceControlInput = () => {
1902
1909
  return i18nString(SourceControlInput$1);
1903
1910
  };
1911
+ const noSourceControlProvidersAvailableForWeb = () => {
1912
+ return i18nString(NoSourceControlProvidersAvailableForWeb);
1913
+ };
1904
1914
 
1905
1915
  const loadContent = async (state, savedState) => {
1906
1916
  const {
@@ -1935,8 +1945,8 @@ const loadContent = async (state, savedState) => {
1935
1945
  } = await getGroups(enabledProviderIds, root, assetDir, platform);
1936
1946
  const expandedGroups = restoreExpandedGroups(allGroups);
1937
1947
  const displayItems = getDisplayItems(allGroups, expandedGroups, iconDefinitions);
1938
- const actionsCache = await requestSourceActions();
1939
- const sourceControlButtons = await requestSourceControlButtons();
1948
+ const actionsCache = enabledProviderIds.length === 0 ? Object.create(null) : await requestSourceActions(platform);
1949
+ const sourceControlButtons = enabledProviderIds.length === 0 ? [] : await requestSourceControlButtons(platform);
1940
1950
 
1941
1951
  // TODO make preferences async and more functional
1942
1952
  const splitButtonEnabled = await get$1('sourceControl.splitButtonEnabled');
@@ -3328,9 +3338,14 @@ const getSourceControlListVirtualDom = items => {
3328
3338
  };
3329
3339
 
3330
3340
  const className = mergeClassNames(Viewlet, SourceControl);
3331
- const getSourceControlVirtualDom = (items, sourceControlButtons, inputPlaceholder, inputMessage) => {
3341
+ const getSourceControlVirtualDom = (items, sourceControlButtons, inputPlaceholder, inputMessage, unavailableMessage) => {
3342
+ const content = unavailableMessage ? [{
3343
+ childCount: 1,
3344
+ className: Message,
3345
+ type: Div
3346
+ }, text(unavailableMessage)] : [...getSourceControlHeaderVirtualDom(inputPlaceholder, inputMessage), ...getSourceControlButtonsVirtualDom(sourceControlButtons), ...getSourceControlListVirtualDom(items)];
3332
3347
  const dom = [{
3333
- childCount: 2 + sourceControlButtons.length,
3348
+ childCount: unavailableMessage ? 1 : 2 + sourceControlButtons.length,
3334
3349
  className: className,
3335
3350
  onContextMenu: HandleContextMenu,
3336
3351
  onMouseOver: HandleMouseOver,
@@ -3338,23 +3353,26 @@ const getSourceControlVirtualDom = (items, sourceControlButtons, inputPlaceholde
3338
3353
  onWheel: HandleWheel,
3339
3354
  tabIndex: 0,
3340
3355
  type: Div
3341
- }, ...getSourceControlHeaderVirtualDom(inputPlaceholder, inputMessage), ...getSourceControlButtonsVirtualDom(sourceControlButtons), ...getSourceControlListVirtualDom(items)];
3356
+ }, ...content];
3342
3357
  return dom;
3343
3358
  };
3344
3359
 
3345
3360
  const renderItems = (oldState, newState) => {
3346
3361
  const {
3362
+ enabledProviderIds,
3347
3363
  id,
3348
3364
  initial,
3349
3365
  inputMessage,
3350
3366
  inputPlaceholder,
3367
+ platform,
3351
3368
  sourceControlButtons,
3352
3369
  visibleItems
3353
3370
  } = newState;
3354
3371
  if (initial) {
3355
3372
  return [SetDom2, id, []];
3356
3373
  }
3357
- const dom = getSourceControlVirtualDom(visibleItems, sourceControlButtons, inputPlaceholder, inputMessage);
3374
+ const unavailableMessage = platform === Web && enabledProviderIds.length === 0 ? noSourceControlProvidersAvailableForWeb() : '';
3375
+ const dom = getSourceControlVirtualDom(visibleItems, sourceControlButtons, inputPlaceholder, inputMessage, unavailableMessage);
3358
3376
  return [SetDom2, id, dom];
3359
3377
  };
3360
3378
 
@@ -3423,6 +3441,15 @@ const ListFlat = 'ListFlat';
3423
3441
  const Refresh = 'Refresh';
3424
3442
 
3425
3443
  const getActions = state => {
3444
+ if (state.platform === Web && state.enabledProviderIds.length === 0) {
3445
+ return [{
3446
+ command: '',
3447
+ icon: Refresh,
3448
+ id: refresh$1(),
3449
+ name: Refresh$1,
3450
+ type: Button
3451
+ }];
3452
+ }
3426
3453
  const actions = [{
3427
3454
  command: '',
3428
3455
  icon: ListFlat,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/source-control-worker",
3
- "version": "3.1.0",
3
+ "version": "3.2.0",
4
4
  "description": "Source Control Worker",
5
5
  "keywords": [
6
6
  "Lvce Editor"