Merge branch 'develop' into feature/js-sdk-presets
Conflicts: packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/index.js packages/common/components/Navigation/sub-components/control-btn.js packages/shared/components/navigation/Navigation.tsx packages/shared/selectors/Room/index.tsx
This commit is contained in:
parent
a8f8c4c1ce
commit
56e669555d
541
.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
vendored
541
.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
vendored
File diff suppressed because one or more lines are too long
550
.yarn/plugins/@yarnpkg/plugin-version.cjs
vendored
550
.yarn/plugins/@yarnpkg/plugin-version.cjs
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
801
.yarn/releases/yarn-3.2.4.cjs
vendored
801
.yarn/releases/yarn-3.2.4.cjs
vendored
File diff suppressed because one or more lines are too long
893
.yarn/releases/yarn-4.0.2.cjs
vendored
Executable file
893
.yarn/releases/yarn-4.0.2.cjs
vendored
Executable file
File diff suppressed because one or more lines are too long
12
.yarnrc.yml
12
.yarnrc.yml
@ -1,13 +1,11 @@
|
||||
compressionLevel: mixed
|
||||
|
||||
enableGlobalCache: false
|
||||
|
||||
nodeLinker: node-modules
|
||||
|
||||
plugins:
|
||||
- path: .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs
|
||||
spec: "@yarnpkg/plugin-workspace-tools"
|
||||
- path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
|
||||
spec: "@yarnpkg/plugin-interactive-tools"
|
||||
- path: .yarn/plugins/@yarnpkg/plugin-version.cjs
|
||||
spec: "@yarnpkg/plugin-version"
|
||||
- path: .yarn/plugins/@yarnpkg/plugin-licenses-audit.cjs
|
||||
spec: "https://raw.githubusercontent.com/tophat/yarn-plugin-licenses/master/bundles/@yarnpkg/plugin-licenses-audit.js"
|
||||
|
||||
yarnPath: .yarn/releases/yarn-3.2.4.cjs
|
||||
yarnPath: .yarn/releases/yarn-4.0.2.cjs
|
||||
|
@ -1,6 +1,6 @@
|
||||
const { join } = require("path");
|
||||
const { readdirSync, readFileSync, writeFileSync } = require("fs");
|
||||
const minifyJson = require("../../packages/common/utils/minifyJson.js");
|
||||
const minifyJson = require("../../packages/shared/utils/minifyJson.js");
|
||||
|
||||
const localesDir = join(
|
||||
__dirname,
|
||||
|
355
graph.svg
355
graph.svg
@ -1,355 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 9.0.0 (20230911.1827)
|
||||
-->
|
||||
<!-- Title: G Pages: 1 -->
|
||||
<svg width="2744pt" height="500pt"
|
||||
viewBox="0.00 0.00 2743.70 500.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(21.6 478.4)">
|
||||
<title>G</title>
|
||||
<polygon fill="#111111" stroke="none" points="-21.6,21.6 -21.6,-478.4 2722.1,-478.4 2722.1,21.6 -21.6,21.6"/>
|
||||
<!-- client/src/components/panels/InvitePanel/index.js -->
|
||||
<g id="node1" class="node">
|
||||
<title>client/src/components/panels/InvitePanel/index.js</title>
|
||||
<path fill="none" stroke="#ff6c60" d="M325.33,-26.8C325.33,-26.8 30.42,-26.8 30.42,-26.8 26.46,-26.8 22.5,-22.84 22.5,-18.88 22.5,-18.88 22.5,-10.97 22.5,-10.97 22.5,-7.01 26.46,-3.05 30.42,-3.05 30.42,-3.05 325.33,-3.05 325.33,-3.05 329.29,-3.05 333.25,-7.01 333.25,-10.97 333.25,-10.97 333.25,-18.88 333.25,-18.88 333.25,-22.84 329.29,-26.8 325.33,-26.8"/>
|
||||
<text text-anchor="middle" x="177.88" y="-9.5" font-family="Arial" font-size="14.00" fill="#ff6c60">client/src/components/panels/InvitePanel/index.js</text>
|
||||
</g>
|
||||
<!-- client/src/components/panels/InvitePanel/sub-components/InviteInput.js -->
|
||||
<g id="node2" class="node">
|
||||
<title>client/src/components/panels/InvitePanel/sub-components/InviteInput.js</title>
|
||||
<path fill="none" stroke="#ff6c60" d="M828.83,-36.8C828.83,-36.8 399.67,-36.8 399.67,-36.8 395.71,-36.8 391.75,-32.84 391.75,-28.88 391.75,-28.88 391.75,-20.97 391.75,-20.97 391.75,-17.01 395.71,-13.05 399.67,-13.05 399.67,-13.05 828.83,-13.05 828.83,-13.05 832.79,-13.05 836.75,-17.01 836.75,-20.97 836.75,-20.97 836.75,-28.88 836.75,-28.88 836.75,-32.84 832.79,-36.8 828.83,-36.8"/>
|
||||
<text text-anchor="middle" x="614.25" y="-19.5" font-family="Arial" font-size="14.00" fill="#ff6c60">client/src/components/panels/InvitePanel/sub-components/InviteInput.js</text>
|
||||
</g>
|
||||
<!-- client/src/components/panels/InvitePanel/index.js->client/src/components/panels/InvitePanel/sub-components/InviteInput.js -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>client/src/components/panels/InvitePanel/index.js->client/src/components/panels/InvitePanel/sub-components/InviteInput.js</title>
|
||||
<path fill="none" stroke="#757575" d="M333.55,-18.49C348.65,-18.83 364.2,-19.19 379.85,-19.55"/>
|
||||
<polygon fill="#757575" stroke="#757575" points="379.68,-23.05 389.75,-19.78 379.84,-16.05 379.68,-23.05"/>
|
||||
</g>
|
||||
<!-- client/src/components/panels/index.js -->
|
||||
<g id="node3" class="node">
|
||||
<title>client/src/components/panels/index.js</title>
|
||||
<path fill="none" stroke="#ff6c60" d="M1154.96,-26.8C1154.96,-26.8 930.54,-26.8 930.54,-26.8 926.58,-26.8 922.62,-22.84 922.62,-18.88 922.62,-18.88 922.62,-10.97 922.62,-10.97 922.62,-7.01 926.58,-3.05 930.54,-3.05 930.54,-3.05 1154.96,-3.05 1154.96,-3.05 1158.92,-3.05 1162.88,-7.01 1162.88,-10.97 1162.88,-10.97 1162.88,-18.88 1162.88,-18.88 1162.88,-22.84 1158.92,-26.8 1154.96,-26.8"/>
|
||||
<text text-anchor="middle" x="1042.75" y="-9.5" font-family="Arial" font-size="14.00" fill="#ff6c60">client/src/components/panels/index.js</text>
|
||||
</g>
|
||||
<!-- client/src/components/panels/InvitePanel/sub-components/InviteInput.js->client/src/components/panels/index.js -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>client/src/components/panels/InvitePanel/sub-components/InviteInput.js->client/src/components/panels/index.js</title>
|
||||
<path fill="none" stroke="#757575" d="M837.24,-19.72C862.47,-19.13 887.52,-18.54 911,-17.99"/>
|
||||
<polygon fill="#757575" stroke="#757575" points="910.97,-21.49 920.89,-17.76 910.81,-14.5 910.97,-21.49"/>
|
||||
</g>
|
||||
<!-- client/src/components/panels/index.js->client/src/components/panels/InvitePanel/index.js -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>client/src/components/panels/index.js->client/src/components/panels/InvitePanel/index.js</title>
|
||||
<path fill="none" stroke="#757575" d="M922.28,-7.43C894.24,-5.98 864.45,-4.67 836.75,-3.93 639.04,1.37 589.46,1.18 391.75,-3.93 376.42,-4.32 360.48,-4.88 344.52,-5.53"/>
|
||||
<polygon fill="#757575" stroke="#757575" points="344.83,-2.02 334.99,-5.94 345.13,-9.01 344.83,-2.02"/>
|
||||
</g>
|
||||
<!-- client/src/components/panels/SharingPanel/index.js -->
|
||||
<g id="node4" class="node">
|
||||
<title>client/src/components/panels/SharingPanel/index.js</title>
|
||||
<path fill="none" stroke="#ff6c60" d="M1573.33,-26.8C1573.33,-26.8 1264.17,-26.8 1264.17,-26.8 1260.21,-26.8 1256.25,-22.84 1256.25,-18.88 1256.25,-18.88 1256.25,-10.97 1256.25,-10.97 1256.25,-7.01 1260.21,-3.05 1264.17,-3.05 1264.17,-3.05 1573.33,-3.05 1573.33,-3.05 1577.29,-3.05 1581.25,-7.01 1581.25,-10.97 1581.25,-10.97 1581.25,-18.88 1581.25,-18.88 1581.25,-22.84 1577.29,-26.8 1573.33,-26.8"/>
|
||||
<text text-anchor="middle" x="1418.75" y="-9.5" font-family="Arial" font-size="14.00" fill="#ff6c60">client/src/components/panels/SharingPanel/index.js</text>
|
||||
</g>
|
||||
<!-- client/src/components/panels/index.js->client/src/components/panels/SharingPanel/index.js -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>client/src/components/panels/index.js->client/src/components/panels/SharingPanel/index.js</title>
|
||||
<path fill="none" stroke="#757575" d="M1163.37,-8.58C1189.29,-8.26 1217.21,-8.13 1244.72,-8.19"/>
|
||||
<polygon fill="#757575" stroke="#757575" points="1244.54,-11.69 1254.55,-8.23 1244.56,-4.69 1244.54,-11.69"/>
|
||||
</g>
|
||||
<!-- client/src/components/panels/SharingPanel/index.js->client/src/components/panels/index.js -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>client/src/components/panels/SharingPanel/index.js->client/src/components/panels/index.js</title>
|
||||
<path fill="none" stroke="#757575" d="M1256.06,-21.62C1228.83,-21.74 1200.87,-21.67 1174.55,-21.4"/>
|
||||
<polygon fill="#757575" stroke="#757575" points="1174.92,-17.9 1164.89,-21.29 1174.84,-24.9 1174.92,-17.9"/>
|
||||
</g>
|
||||
<!-- client/src/helpers/desktop.js -->
|
||||
<g id="node5" class="node">
|
||||
<title>client/src/helpers/desktop.js</title>
|
||||
<path fill="none" stroke="#ff6c60" d="M260.83,-87.8C260.83,-87.8 94.92,-87.8 94.92,-87.8 90.96,-87.8 87,-83.84 87,-79.88 87,-79.88 87,-71.97 87,-71.97 87,-68.01 90.96,-64.05 94.92,-64.05 94.92,-64.05 260.83,-64.05 260.83,-64.05 264.79,-64.05 268.75,-68.01 268.75,-71.97 268.75,-71.97 268.75,-79.88 268.75,-79.88 268.75,-83.84 264.79,-87.8 260.83,-87.8"/>
|
||||
<text text-anchor="middle" x="177.88" y="-70.5" font-family="Arial" font-size="14.00" fill="#ff6c60">client/src/helpers/desktop.js</text>
|
||||
</g>
|
||||
<!-- client/src/store/index.js -->
|
||||
<g id="node6" class="node">
|
||||
<title>client/src/store/index.js</title>
|
||||
<path fill="none" stroke="#ff6c60" d="M682.58,-117.8C682.58,-117.8 545.92,-117.8 545.92,-117.8 541.96,-117.8 538,-113.84 538,-109.88 538,-109.88 538,-101.97 538,-101.97 538,-98.01 541.96,-94.05 545.92,-94.05 545.92,-94.05 682.58,-94.05 682.58,-94.05 686.54,-94.05 690.5,-98.01 690.5,-101.97 690.5,-101.97 690.5,-109.88 690.5,-109.88 690.5,-113.84 686.54,-117.8 682.58,-117.8"/>
|
||||
<text text-anchor="middle" x="614.25" y="-100.5" font-family="Arial" font-size="14.00" fill="#ff6c60">client/src/store/index.js</text>
|
||||
</g>
|
||||
<!-- client/src/helpers/desktop.js->client/src/store/index.js -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>client/src/helpers/desktop.js->client/src/store/index.js</title>
|
||||
<path fill="none" stroke="#757575" d="M269.14,-82.16C344.68,-87.38 451.78,-94.77 526.36,-99.93"/>
|
||||
<polygon fill="#757575" stroke="#757575" points="525.85,-103.4 536.07,-100.6 526.33,-96.42 525.85,-103.4"/>
|
||||
</g>
|
||||
<!-- client/src/store/HotkeyStore.js -->
|
||||
<g id="node11" class="node">
|
||||
<title>client/src/store/HotkeyStore.js</title>
|
||||
<path fill="none" stroke="#ff6c60" d="M1132.08,-87.8C1132.08,-87.8 953.42,-87.8 953.42,-87.8 949.46,-87.8 945.5,-83.84 945.5,-79.88 945.5,-79.88 945.5,-71.97 945.5,-71.97 945.5,-68.01 949.46,-64.05 953.42,-64.05 953.42,-64.05 1132.08,-64.05 1132.08,-64.05 1136.04,-64.05 1140,-68.01 1140,-71.97 1140,-71.97 1140,-79.88 1140,-79.88 1140,-83.84 1136.04,-87.8 1132.08,-87.8"/>
|
||||
<text text-anchor="middle" x="1042.75" y="-70.5" font-family="Arial" font-size="14.00" fill="#ff6c60">client/src/store/HotkeyStore.js</text>
|
||||
</g>
|
||||
<!-- client/src/store/index.js->client/src/store/HotkeyStore.js -->
|
||||
<g id="edge12" class="edge">
|
||||
<title>client/src/store/index.js->client/src/store/HotkeyStore.js</title>
|
||||
<path fill="none" stroke="#757575" d="M690.52,-100.63C758.1,-95.88 858.08,-88.85 934.11,-83.5"/>
|
||||
<polygon fill="#757575" stroke="#757575" points="933.9,-87.02 943.63,-82.83 933.41,-80.04 933.9,-87.02"/>
|
||||
</g>
|
||||
<!-- client/src/pages/FormGallery/TilesView/StyledTileView.js -->
|
||||
<g id="node7" class="node">
|
||||
<title>client/src/pages/FormGallery/TilesView/StyledTileView.js</title>
|
||||
<path fill="none" stroke="#ff6c60" d="M347.83,-159.8C347.83,-159.8 7.92,-159.8 7.92,-159.8 3.96,-159.8 0,-155.84 0,-151.88 0,-151.88 0,-143.97 0,-143.97 0,-140.01 3.96,-136.05 7.92,-136.05 7.92,-136.05 347.83,-136.05 347.83,-136.05 351.79,-136.05 355.75,-140.01 355.75,-143.97 355.75,-143.97 355.75,-151.88 355.75,-151.88 355.75,-155.84 351.79,-159.8 347.83,-159.8"/>
|
||||
<text text-anchor="middle" x="177.88" y="-142.5" font-family="Arial" font-size="14.00" fill="#ff6c60">client/src/pages/FormGallery/TilesView/StyledTileView.js</text>
|
||||
</g>
|
||||
<!-- client/src/pages/FormGallery/TilesView/sub-components/TileContent.js -->
|
||||
<g id="node8" class="node">
|
||||
<title>client/src/pages/FormGallery/TilesView/sub-components/TileContent.js</title>
|
||||
<path fill="none" stroke="#ff6c60" d="M826.96,-159.8C826.96,-159.8 401.54,-159.8 401.54,-159.8 397.58,-159.8 393.62,-155.84 393.62,-151.88 393.62,-151.88 393.62,-143.97 393.62,-143.97 393.62,-140.01 397.58,-136.05 401.54,-136.05 401.54,-136.05 826.96,-136.05 826.96,-136.05 830.92,-136.05 834.88,-140.01 834.88,-143.97 834.88,-143.97 834.88,-151.88 834.88,-151.88 834.88,-155.84 830.92,-159.8 826.96,-159.8"/>
|
||||
<text text-anchor="middle" x="614.25" y="-142.5" font-family="Arial" font-size="14.00" fill="#ff6c60">client/src/pages/FormGallery/TilesView/sub-components/TileContent.js</text>
|
||||
</g>
|
||||
<!-- client/src/pages/FormGallery/TilesView/StyledTileView.js->client/src/pages/FormGallery/TilesView/sub-components/TileContent.js -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>client/src/pages/FormGallery/TilesView/StyledTileView.js->client/src/pages/FormGallery/TilesView/sub-components/TileContent.js</title>
|
||||
<path fill="none" stroke="#757575" d="M356.18,-141.28C364.66,-141.23 373.23,-141.2 381.82,-141.19"/>
|
||||
<polygon fill="#757575" stroke="#757575" points="381.62,-144.69 391.62,-141.18 381.62,-137.69 381.62,-144.69"/>
|
||||
</g>
|
||||
<!-- client/src/pages/FormGallery/TilesView/sub-components/TileContent.js->client/src/pages/FormGallery/TilesView/StyledTileView.js -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>client/src/pages/FormGallery/TilesView/sub-components/TileContent.js->client/src/pages/FormGallery/TilesView/StyledTileView.js</title>
|
||||
<path fill="none" stroke="#757575" d="M393.13,-154.68C384.62,-154.67 376.11,-154.66 367.66,-154.62"/>
|
||||
<polygon fill="#757575" stroke="#757575" points="367.71,-151.13 357.69,-154.58 367.68,-158.13 367.71,-151.13"/>
|
||||
</g>
|
||||
<!-- client/src/pages/PortalSettings/utils/index.js -->
|
||||
<g id="node9" class="node">
|
||||
<title>client/src/pages/PortalSettings/utils/index.js</title>
|
||||
<path fill="none" stroke="#ff6c60" d="M307.33,-201.8C307.33,-201.8 48.42,-201.8 48.42,-201.8 44.46,-201.8 40.5,-197.84 40.5,-193.88 40.5,-193.88 40.5,-185.97 40.5,-185.97 40.5,-182.01 44.46,-178.05 48.42,-178.05 48.42,-178.05 307.33,-178.05 307.33,-178.05 311.29,-178.05 315.25,-182.01 315.25,-185.97 315.25,-185.97 315.25,-193.88 315.25,-193.88 315.25,-197.84 311.29,-201.8 307.33,-201.8"/>
|
||||
<text text-anchor="middle" x="177.88" y="-184.5" font-family="Arial" font-size="14.00" fill="#ff6c60">client/src/pages/PortalSettings/utils/index.js</text>
|
||||
</g>
|
||||
<!-- client/src/pages/PortalSettings/utils/resetSessionStorage.js -->
|
||||
<g id="node10" class="node">
|
||||
<title>client/src/pages/PortalSettings/utils/resetSessionStorage.js</title>
|
||||
<path fill="none" stroke="#ff6c60" d="M790.21,-201.8C790.21,-201.8 438.29,-201.8 438.29,-201.8 434.33,-201.8 430.38,-197.84 430.38,-193.88 430.38,-193.88 430.38,-185.97 430.38,-185.97 430.38,-182.01 434.33,-178.05 438.29,-178.05 438.29,-178.05 790.21,-178.05 790.21,-178.05 794.17,-178.05 798.12,-182.01 798.12,-185.97 798.12,-185.97 798.12,-193.88 798.12,-193.88 798.12,-197.84 794.17,-201.8 790.21,-201.8"/>
|
||||
<text text-anchor="middle" x="614.25" y="-184.5" font-family="Arial" font-size="14.00" fill="#ff6c60">client/src/pages/PortalSettings/utils/resetSessionStorage.js</text>
|
||||
</g>
|
||||
<!-- client/src/pages/PortalSettings/utils/index.js->client/src/pages/PortalSettings/utils/resetSessionStorage.js -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>client/src/pages/PortalSettings/utils/index.js->client/src/pages/PortalSettings/utils/resetSessionStorage.js</title>
|
||||
<path fill="none" stroke="#757575" d="M315.72,-183.6C348.48,-183.24 384.08,-183.11 418.89,-183.21"/>
|
||||
<polygon fill="#757575" stroke="#757575" points="418.63,-186.71 428.65,-183.25 418.66,-179.71 418.63,-186.71"/>
|
||||
</g>
|
||||
<!-- client/src/pages/PortalSettings/utils/resetSessionStorage.js->client/src/pages/PortalSettings/utils/index.js -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>client/src/pages/PortalSettings/utils/resetSessionStorage.js->client/src/pages/PortalSettings/utils/index.js</title>
|
||||
<path fill="none" stroke="#757575" d="M430.16,-196.6C395.71,-196.75 360.09,-196.67 326.88,-196.36"/>
|
||||
<polygon fill="#757575" stroke="#757575" points="327.27,-192.87 317.23,-196.26 327.19,-199.87 327.27,-192.87"/>
|
||||
</g>
|
||||
<!-- client/src/store/HotkeyStore.js->client/src/helpers/desktop.js -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>client/src/store/HotkeyStore.js->client/src/helpers/desktop.js</title>
|
||||
<path fill="none" stroke="#757575" d="M945.26,-75.93C780.93,-75.93 448.24,-75.93 280.48,-75.93"/>
|
||||
<polygon fill="#757575" stroke="#757575" points="280.69,-72.43 270.69,-75.93 280.69,-79.43 280.69,-72.43"/>
|
||||
</g>
|
||||
<!-- common/store/AuthStore.js -->
|
||||
<g id="node12" class="node">
|
||||
<title>common/store/AuthStore.js</title>
|
||||
<path fill="none" stroke="#ff6c60" d="M260.08,-279.8C260.08,-279.8 95.67,-279.8 95.67,-279.8 91.71,-279.8 87.75,-275.84 87.75,-271.88 87.75,-271.88 87.75,-263.97 87.75,-263.97 87.75,-260.01 91.71,-256.05 95.67,-256.05 95.67,-256.05 260.08,-256.05 260.08,-256.05 264.04,-256.05 268,-260.01 268,-263.97 268,-263.97 268,-271.88 268,-271.88 268,-275.84 264.04,-279.8 260.08,-279.8"/>
|
||||
<text text-anchor="middle" x="177.88" y="-262.5" font-family="Arial" font-size="14.00" fill="#ff6c60">common/store/AuthStore.js</text>
|
||||
</g>
|
||||
<!-- common/store/CurrentQuotaStore.js -->
|
||||
<g id="node13" class="node">
|
||||
<title>common/store/CurrentQuotaStore.js</title>
|
||||
<path fill="none" stroke="#ff6c60" d="M723.83,-285.8C723.83,-285.8 504.67,-285.8 504.67,-285.8 500.71,-285.8 496.75,-281.84 496.75,-277.88 496.75,-277.88 496.75,-269.97 496.75,-269.97 496.75,-266.01 500.71,-262.05 504.67,-262.05 504.67,-262.05 723.83,-262.05 723.83,-262.05 727.79,-262.05 731.75,-266.01 731.75,-269.97 731.75,-269.97 731.75,-277.88 731.75,-277.88 731.75,-281.84 727.79,-285.8 723.83,-285.8"/>
|
||||
<text text-anchor="middle" x="614.25" y="-268.5" font-family="Arial" font-size="14.00" fill="#ff6c60">common/store/CurrentQuotaStore.js</text>
|
||||
</g>
|
||||
<!-- common/store/AuthStore.js->common/store/CurrentQuotaStore.js -->
|
||||
<g id="edge13" class="edge">
|
||||
<title>common/store/AuthStore.js->common/store/CurrentQuotaStore.js</title>
|
||||
<path fill="none" stroke="#757575" d="M268.35,-263.58C330.93,-263.14 415.45,-264.1 485.15,-265.94"/>
|
||||
<polygon fill="#757575" stroke="#757575" points="485.05,-269.44 495.14,-266.21 485.24,-262.44 485.05,-269.44"/>
|
||||
</g>
|
||||
<!-- common/store/CurrentTariffStatusStore.js -->
|
||||
<g id="node14" class="node">
|
||||
<title>common/store/CurrentTariffStatusStore.js</title>
|
||||
<path fill="none" stroke="#ff6c60" d="M738.83,-243.8C738.83,-243.8 489.67,-243.8 489.67,-243.8 485.71,-243.8 481.75,-239.84 481.75,-235.88 481.75,-235.88 481.75,-227.97 481.75,-227.97 481.75,-224.01 485.71,-220.05 489.67,-220.05 489.67,-220.05 738.83,-220.05 738.83,-220.05 742.79,-220.05 746.75,-224.01 746.75,-227.97 746.75,-227.97 746.75,-235.88 746.75,-235.88 746.75,-239.84 742.79,-243.8 738.83,-243.8"/>
|
||||
<text text-anchor="middle" x="614.25" y="-226.5" font-family="Arial" font-size="14.00" fill="#ff6c60">common/store/CurrentTariffStatusStore.js</text>
|
||||
</g>
|
||||
<!-- common/store/AuthStore.js->common/store/CurrentTariffStatusStore.js -->
|
||||
<g id="edge14" class="edge">
|
||||
<title>common/store/AuthStore.js->common/store/CurrentTariffStatusStore.js</title>
|
||||
<path fill="none" stroke="#757575" d="M262.37,-255.55C321.08,-249.37 401.12,-242.42 469.94,-237.41"/>
|
||||
<polygon fill="#757575" stroke="#757575" points="470.08,-240.91 479.81,-236.7 469.58,-233.93 470.08,-240.91"/>
|
||||
</g>
|
||||
<!-- common/store/CurrentQuotaStore.js->common/store/AuthStore.js -->
|
||||
<g id="edge15" class="edge">
|
||||
<title>common/store/CurrentQuotaStore.js->common/store/AuthStore.js</title>
|
||||
<path fill="none" stroke="#757575" d="M496.65,-278.38C428.99,-278.44 344.61,-277.19 279.8,-275.12"/>
|
||||
<polygon fill="#757575" stroke="#757575" points="279.97,-271.63 269.86,-274.79 279.74,-278.62 279.97,-271.63"/>
|
||||
</g>
|
||||
<!-- common/store/CurrentTariffStatusStore.js->common/store/AuthStore.js -->
|
||||
<g id="edge16" class="edge">
|
||||
<title>common/store/CurrentTariffStatusStore.js->common/store/AuthStore.js</title>
|
||||
<path fill="none" stroke="#757575" d="M529.78,-244.3C458.49,-251.81 355.73,-260.44 279.82,-265.36"/>
|
||||
<polygon fill="#757575" stroke="#757575" points="279.62,-261.87 269.86,-266 280.06,-268.86 279.62,-261.87"/>
|
||||
</g>
|
||||
<!-- components/ColorTheme/ColorTheme.js -->
|
||||
<g id="node15" class="node">
|
||||
<title>components/ColorTheme/ColorTheme.js</title>
|
||||
<path fill="none" stroke="#ff6c60" d="M300.58,-341.8C300.58,-341.8 55.17,-341.8 55.17,-341.8 51.21,-341.8 47.25,-337.84 47.25,-333.88 47.25,-333.88 47.25,-325.97 47.25,-325.97 47.25,-322.01 51.21,-318.05 55.17,-318.05 55.17,-318.05 300.58,-318.05 300.58,-318.05 304.54,-318.05 308.5,-322.01 308.5,-325.97 308.5,-325.97 308.5,-333.88 308.5,-333.88 308.5,-337.84 304.54,-341.8 300.58,-341.8"/>
|
||||
<text text-anchor="middle" x="177.88" y="-324.5" font-family="Arial" font-size="14.00" fill="#ff6c60">components/ColorTheme/ColorTheme.js</text>
|
||||
</g>
|
||||
<!-- components/ColorTheme/styled/index.js -->
|
||||
<g id="node16" class="node">
|
||||
<title>components/ColorTheme/styled/index.js</title>
|
||||
<path fill="none" stroke="#ff6c60" d="M735.08,-414.8C735.08,-414.8 493.42,-414.8 493.42,-414.8 489.46,-414.8 485.5,-410.84 485.5,-406.88 485.5,-406.88 485.5,-398.97 485.5,-398.97 485.5,-395.01 489.46,-391.05 493.42,-391.05 493.42,-391.05 735.08,-391.05 735.08,-391.05 739.04,-391.05 743,-395.01 743,-398.97 743,-398.97 743,-406.88 743,-406.88 743,-410.84 739.04,-414.8 735.08,-414.8"/>
|
||||
<text text-anchor="middle" x="614.25" y="-397.5" font-family="Arial" font-size="14.00" fill="#ff6c60">components/ColorTheme/styled/index.js</text>
|
||||
</g>
|
||||
<!-- components/ColorTheme/ColorTheme.js->components/ColorTheme/styled/index.js -->
|
||||
<g id="edge17" class="edge">
|
||||
<title>components/ColorTheme/ColorTheme.js->components/ColorTheme/styled/index.js</title>
|
||||
<path fill="none" stroke="#757575" d="M252.07,-342.23C328.51,-355.07 448.25,-375.2 528.68,-388.71"/>
|
||||
<polygon fill="#757575" stroke="#757575" points="527.82,-392.12 538.26,-390.32 528.98,-385.22 527.82,-392.12"/>
|
||||
</g>
|
||||
<!-- components/ColorTheme/styled/mainButton.js -->
|
||||
<g id="node18" class="node">
|
||||
<title>components/ColorTheme/styled/mainButton.js</title>
|
||||
<path fill="none" stroke="#ff6c60" d="M1181.96,-456.8C1181.96,-456.8 903.54,-456.8 903.54,-456.8 899.58,-456.8 895.62,-452.84 895.62,-448.88 895.62,-448.88 895.62,-440.97 895.62,-440.97 895.62,-437.01 899.58,-433.05 903.54,-433.05 903.54,-433.05 1181.96,-433.05 1181.96,-433.05 1185.92,-433.05 1189.88,-437.01 1189.88,-440.97 1189.88,-440.97 1189.88,-448.88 1189.88,-448.88 1189.88,-452.84 1185.92,-456.8 1181.96,-456.8"/>
|
||||
<text text-anchor="middle" x="1042.75" y="-439.5" font-family="Arial" font-size="14.00" fill="#ff6c60">components/ColorTheme/styled/mainButton.js</text>
|
||||
</g>
|
||||
<!-- components/ColorTheme/styled/index.js->components/ColorTheme/styled/mainButton.js -->
|
||||
<g id="edge19" class="edge">
|
||||
<title>components/ColorTheme/styled/index.js->components/ColorTheme/styled/mainButton.js</title>
|
||||
<path fill="none" stroke="#757575" d="M740.91,-415.3C792.52,-420.38 852.42,-426.28 905.12,-431.47"/>
|
||||
<polygon fill="#757575" stroke="#757575" points="904.45,-434.92 914.75,-432.42 905.14,-427.96 904.45,-434.92"/>
|
||||
</g>
|
||||
<!-- components/ColorTheme/styled/mobileProgressBar.js -->
|
||||
<g id="node19" class="node">
|
||||
<title>components/ColorTheme/styled/mobileProgressBar.js</title>
|
||||
<path fill="none" stroke="#ff6c60" d="M1204.83,-414.8C1204.83,-414.8 880.67,-414.8 880.67,-414.8 876.71,-414.8 872.75,-410.84 872.75,-406.88 872.75,-406.88 872.75,-398.97 872.75,-398.97 872.75,-395.01 876.71,-391.05 880.67,-391.05 880.67,-391.05 1204.83,-391.05 1204.83,-391.05 1208.79,-391.05 1212.75,-395.01 1212.75,-398.97 1212.75,-398.97 1212.75,-406.88 1212.75,-406.88 1212.75,-410.84 1208.79,-414.8 1204.83,-414.8"/>
|
||||
<text text-anchor="middle" x="1042.75" y="-397.5" font-family="Arial" font-size="14.00" fill="#ff6c60">components/ColorTheme/styled/mobileProgressBar.js</text>
|
||||
</g>
|
||||
<!-- components/ColorTheme/styled/index.js->components/ColorTheme/styled/mobileProgressBar.js -->
|
||||
<g id="edge20" class="edge">
|
||||
<title>components/ColorTheme/styled/index.js->components/ColorTheme/styled/mobileProgressBar.js</title>
|
||||
<path fill="none" stroke="#757575" d="M743.21,-402.93C780.25,-402.93 821.4,-402.93 861.02,-402.93"/>
|
||||
<polygon fill="#757575" stroke="#757575" points="860.91,-406.43 870.91,-402.93 860.91,-399.43 860.91,-406.43"/>
|
||||
</g>
|
||||
<!-- components/ColorTheme/index.js -->
|
||||
<g id="node17" class="node">
|
||||
<title>components/ColorTheme/index.js</title>
|
||||
<path fill="none" stroke="#ff6c60" d="M2692.58,-376.8C2692.58,-376.8 2489.92,-376.8 2489.92,-376.8 2485.96,-376.8 2482,-372.84 2482,-368.88 2482,-368.88 2482,-360.97 2482,-360.97 2482,-357.01 2485.96,-353.05 2489.92,-353.05 2489.92,-353.05 2692.58,-353.05 2692.58,-353.05 2696.54,-353.05 2700.5,-357.01 2700.5,-360.97 2700.5,-360.97 2700.5,-368.88 2700.5,-368.88 2700.5,-372.84 2696.54,-376.8 2692.58,-376.8"/>
|
||||
<text text-anchor="middle" x="2591.25" y="-359.5" font-family="Arial" font-size="14.00" fill="#ff6c60">components/ColorTheme/index.js</text>
|
||||
</g>
|
||||
<!-- components/ColorTheme/index.js->components/ColorTheme/ColorTheme.js -->
|
||||
<g id="edge18" class="edge">
|
||||
<title>components/ColorTheme/index.js->components/ColorTheme/ColorTheme.js</title>
|
||||
<path fill="none" stroke="#757575" d="M2515.55,-352.59C2493.24,-349.3 2468.68,-346.07 2446,-343.93 2252.78,-325.7 2203.82,-324.93 2009.75,-324.93 1041.75,-324.93 1041.75,-324.93 1041.75,-324.93 787.55,-324.93 491.22,-327.12 320.31,-328.6"/>
|
||||
<polygon fill="#757575" stroke="#757575" points="320.46,-325.1 310.49,-328.69 320.52,-332.1 320.46,-325.1"/>
|
||||
</g>
|
||||
<!-- components/main-button/styled-main-button.js -->
|
||||
<g id="node20" class="node">
|
||||
<title>components/main-button/styled-main-button.js</title>
|
||||
<path fill="none" stroke="#ff6c60" d="M1558.33,-456.8C1558.33,-456.8 1279.17,-456.8 1279.17,-456.8 1275.21,-456.8 1271.25,-452.84 1271.25,-448.88 1271.25,-448.88 1271.25,-440.97 1271.25,-440.97 1271.25,-437.01 1275.21,-433.05 1279.17,-433.05 1279.17,-433.05 1558.33,-433.05 1558.33,-433.05 1562.29,-433.05 1566.25,-437.01 1566.25,-440.97 1566.25,-440.97 1566.25,-448.88 1566.25,-448.88 1566.25,-452.84 1562.29,-456.8 1558.33,-456.8"/>
|
||||
<text text-anchor="middle" x="1418.75" y="-439.5" font-family="Arial" font-size="14.00" fill="#ff6c60">components/main-button/styled-main-button.js</text>
|
||||
</g>
|
||||
<!-- components/ColorTheme/styled/mainButton.js->components/main-button/styled-main-button.js -->
|
||||
<g id="edge21" class="edge">
|
||||
<title>components/ColorTheme/styled/mainButton.js->components/main-button/styled-main-button.js</title>
|
||||
<path fill="none" stroke="#757575" d="M1190.22,-444.93C1213.01,-444.93 1236.64,-444.93 1259.67,-444.93"/>
|
||||
<polygon fill="#757575" stroke="#757575" points="1259.41,-448.43 1269.41,-444.93 1259.41,-441.43 1259.41,-448.43"/>
|
||||
</g>
|
||||
<!-- components/main-button-mobile/styled-main-button.js -->
|
||||
<g id="node21" class="node">
|
||||
<title>components/main-button-mobile/styled-main-button.js</title>
|
||||
<path fill="none" stroke="#ff6c60" d="M1580.83,-414.8C1580.83,-414.8 1256.67,-414.8 1256.67,-414.8 1252.71,-414.8 1248.75,-410.84 1248.75,-406.88 1248.75,-406.88 1248.75,-398.97 1248.75,-398.97 1248.75,-395.01 1252.71,-391.05 1256.67,-391.05 1256.67,-391.05 1580.83,-391.05 1580.83,-391.05 1584.79,-391.05 1588.75,-395.01 1588.75,-398.97 1588.75,-398.97 1588.75,-406.88 1588.75,-406.88 1588.75,-410.84 1584.79,-414.8 1580.83,-414.8"/>
|
||||
<text text-anchor="middle" x="1418.75" y="-397.5" font-family="Arial" font-size="14.00" fill="#ff6c60">components/main-button-mobile/styled-main-button.js</text>
|
||||
</g>
|
||||
<!-- components/ColorTheme/styled/mobileProgressBar.js->components/main-button-mobile/styled-main-button.js -->
|
||||
<g id="edge22" class="edge">
|
||||
<title>components/ColorTheme/styled/mobileProgressBar.js->components/main-button-mobile/styled-main-button.js</title>
|
||||
<path fill="none" stroke="#757575" d="M1213.24,-402.93C1221.19,-402.93 1229.18,-402.93 1237.15,-402.93"/>
|
||||
<polygon fill="#757575" stroke="#757575" points="1236.9,-406.43 1246.9,-402.93 1236.9,-399.43 1236.9,-406.43"/>
|
||||
</g>
|
||||
<!-- components/drop-down/index.js -->
|
||||
<g id="node24" class="node">
|
||||
<title>components/drop-down/index.js</title>
|
||||
<path fill="none" stroke="#ff6c60" d="M1834.96,-456.8C1834.96,-456.8 1643.54,-456.8 1643.54,-456.8 1639.58,-456.8 1635.62,-452.84 1635.62,-448.88 1635.62,-448.88 1635.62,-440.97 1635.62,-440.97 1635.62,-437.01 1639.58,-433.05 1643.54,-433.05 1643.54,-433.05 1834.96,-433.05 1834.96,-433.05 1838.92,-433.05 1842.88,-437.01 1842.88,-440.97 1842.88,-440.97 1842.88,-448.88 1842.88,-448.88 1842.88,-452.84 1838.92,-456.8 1834.96,-456.8"/>
|
||||
<text text-anchor="middle" x="1739.25" y="-439.5" font-family="Arial" font-size="14.00" fill="#ff6c60">components/drop-down/index.js</text>
|
||||
</g>
|
||||
<!-- components/main-button/styled-main-button.js->components/drop-down/index.js -->
|
||||
<g id="edge30" class="edge">
|
||||
<title>components/main-button/styled-main-button.js->components/drop-down/index.js</title>
|
||||
<path fill="none" stroke="#757575" d="M1566.41,-444.93C1585.75,-444.93 1605.33,-444.93 1624.01,-444.93"/>
|
||||
<polygon fill="#757575" stroke="#757575" points="1624.01,-448.43 1634.01,-444.93 1624.01,-441.43 1624.01,-448.43"/>
|
||||
</g>
|
||||
<!-- components/drop-down-item/index.js -->
|
||||
<g id="node22" class="node">
|
||||
<title>components/drop-down-item/index.js</title>
|
||||
<path fill="none" stroke="#ff6c60" d="M2119.83,-418.8C2119.83,-418.8 1897.67,-418.8 1897.67,-418.8 1893.71,-418.8 1889.75,-414.84 1889.75,-410.88 1889.75,-410.88 1889.75,-402.97 1889.75,-402.97 1889.75,-399.01 1893.71,-395.05 1897.67,-395.05 1897.67,-395.05 2119.83,-395.05 2119.83,-395.05 2123.79,-395.05 2127.75,-399.01 2127.75,-402.97 2127.75,-402.97 2127.75,-410.88 2127.75,-410.88 2127.75,-414.84 2123.79,-418.8 2119.83,-418.8"/>
|
||||
<text text-anchor="middle" x="2008.75" y="-401.5" font-family="Arial" font-size="14.00" fill="#ff6c60">components/drop-down-item/index.js</text>
|
||||
</g>
|
||||
<!-- components/main-button-mobile/styled-main-button.js->components/drop-down-item/index.js -->
|
||||
<g id="edge27" class="edge">
|
||||
<title>components/main-button-mobile/styled-main-button.js->components/drop-down-item/index.js</title>
|
||||
<path fill="none" stroke="#757575" d="M1589.04,-404.08C1681.09,-404.7 1793.16,-405.47 1878.18,-406.05"/>
|
||||
<polygon fill="#757575" stroke="#757575" points="1877.93,-409.54 1887.96,-406.11 1877.98,-402.54 1877.93,-409.54"/>
|
||||
</g>
|
||||
<!-- components/main-button-mobile/styled-main-button.js->components/drop-down/index.js -->
|
||||
<g id="edge28" class="edge">
|
||||
<title>components/main-button-mobile/styled-main-button.js->components/drop-down/index.js</title>
|
||||
<path fill="none" stroke="#757575" d="M1521.21,-415.27C1543.47,-418.05 1566.91,-421.04 1588.75,-423.93 1605.59,-426.16 1623.48,-428.6 1640.82,-431.01"/>
|
||||
<polygon fill="#757575" stroke="#757575" points="1640.22,-434.46 1650.61,-432.38 1641.19,-427.53 1640.22,-434.46"/>
|
||||
</g>
|
||||
<!-- components/floating-button/index.js -->
|
||||
<g id="node26" class="node">
|
||||
<title>components/floating-button/index.js</title>
|
||||
<path fill="none" stroke="#ff6c60" d="M1845.83,-376.8C1845.83,-376.8 1632.67,-376.8 1632.67,-376.8 1628.71,-376.8 1624.75,-372.84 1624.75,-368.88 1624.75,-368.88 1624.75,-360.97 1624.75,-360.97 1624.75,-357.01 1628.71,-353.05 1632.67,-353.05 1632.67,-353.05 1845.83,-353.05 1845.83,-353.05 1849.79,-353.05 1853.75,-357.01 1853.75,-360.97 1853.75,-360.97 1853.75,-368.88 1853.75,-368.88 1853.75,-372.84 1849.79,-376.8 1845.83,-376.8"/>
|
||||
<text text-anchor="middle" x="1739.25" y="-359.5" font-family="Arial" font-size="14.00" fill="#ff6c60">components/floating-button/index.js</text>
|
||||
</g>
|
||||
<!-- components/main-button-mobile/styled-main-button.js->components/floating-button/index.js -->
|
||||
<g id="edge29" class="edge">
|
||||
<title>components/main-button-mobile/styled-main-button.js->components/floating-button/index.js</title>
|
||||
<path fill="none" stroke="#757575" d="M1523.16,-390.59C1555.23,-386.76 1590.75,-382.52 1623.54,-378.61"/>
|
||||
<polygon fill="#757575" stroke="#757575" points="1623.53,-382.14 1633.04,-377.48 1622.7,-375.19 1623.53,-382.14"/>
|
||||
</g>
|
||||
<!-- components/toggle-button/index.js -->
|
||||
<g id="node23" class="node">
|
||||
<title>components/toggle-button/index.js</title>
|
||||
<path fill="none" stroke="#ff6c60" d="M2408.08,-418.8C2408.08,-418.8 2201.67,-418.8 2201.67,-418.8 2197.71,-418.8 2193.75,-414.84 2193.75,-410.88 2193.75,-410.88 2193.75,-402.97 2193.75,-402.97 2193.75,-399.01 2197.71,-395.05 2201.67,-395.05 2201.67,-395.05 2408.08,-395.05 2408.08,-395.05 2412.04,-395.05 2416,-399.01 2416,-402.97 2416,-402.97 2416,-410.88 2416,-410.88 2416,-414.84 2412.04,-418.8 2408.08,-418.8"/>
|
||||
<text text-anchor="middle" x="2304.88" y="-401.5" font-family="Arial" font-size="14.00" fill="#ff6c60">components/toggle-button/index.js</text>
|
||||
</g>
|
||||
<!-- components/drop-down-item/index.js->components/toggle-button/index.js -->
|
||||
<g id="edge23" class="edge">
|
||||
<title>components/drop-down-item/index.js->components/toggle-button/index.js</title>
|
||||
<path fill="none" stroke="#757575" d="M2128.11,-406.93C2145.87,-406.93 2164.22,-406.93 2182.05,-406.93"/>
|
||||
<polygon fill="#757575" stroke="#757575" points="2181.86,-410.43 2191.86,-406.93 2181.86,-403.43 2181.86,-410.43"/>
|
||||
</g>
|
||||
<!-- components/toggle-button/index.js->components/ColorTheme/index.js -->
|
||||
<g id="edge31" class="edge">
|
||||
<title>components/toggle-button/index.js->components/ColorTheme/index.js</title>
|
||||
<path fill="none" stroke="#757575" d="M2389.66,-394.55C2422.92,-389.64 2461.35,-383.96 2495.61,-378.9"/>
|
||||
<polygon fill="#757575" stroke="#757575" points="2495.7,-382.43 2505.08,-377.51 2494.67,-375.5 2495.7,-382.43"/>
|
||||
</g>
|
||||
<!-- components/drop-down/index.js->components/drop-down-item/index.js -->
|
||||
<g id="edge24" class="edge">
|
||||
<title>components/drop-down/index.js->components/drop-down-item/index.js</title>
|
||||
<path fill="none" stroke="#757575" d="M1827.1,-432.59C1853.51,-428.84 1882.72,-424.69 1909.81,-420.84"/>
|
||||
<polygon fill="#757575" stroke="#757575" points="1909.97,-424.35 1919.38,-419.48 1908.99,-417.42 1909.97,-424.35"/>
|
||||
</g>
|
||||
<!-- components/floating-button/floating-button.js -->
|
||||
<g id="node25" class="node">
|
||||
<title>components/floating-button/floating-button.js</title>
|
||||
<path fill="none" stroke="#ff6c60" d="M2438.08,-376.8C2438.08,-376.8 2171.67,-376.8 2171.67,-376.8 2167.71,-376.8 2163.75,-372.84 2163.75,-368.88 2163.75,-368.88 2163.75,-360.97 2163.75,-360.97 2163.75,-357.01 2167.71,-353.05 2171.67,-353.05 2171.67,-353.05 2438.08,-353.05 2438.08,-353.05 2442.04,-353.05 2446,-357.01 2446,-360.97 2446,-360.97 2446,-368.88 2446,-368.88 2446,-372.84 2442.04,-376.8 2438.08,-376.8"/>
|
||||
<text text-anchor="middle" x="2304.88" y="-359.5" font-family="Arial" font-size="14.00" fill="#ff6c60">components/floating-button/floating-button.js</text>
|
||||
</g>
|
||||
<!-- components/floating-button/floating-button.js->components/ColorTheme/index.js -->
|
||||
<g id="edge25" class="edge">
|
||||
<title>components/floating-button/floating-button.js->components/ColorTheme/index.js</title>
|
||||
<path fill="none" stroke="#757575" d="M2446.4,-364.93C2454.39,-364.93 2462.39,-364.93 2470.29,-364.93"/>
|
||||
<polygon fill="#757575" stroke="#757575" points="2470.28,-368.43 2480.28,-364.93 2470.28,-361.43 2470.28,-368.43"/>
|
||||
</g>
|
||||
<!-- components/floating-button/index.js->components/floating-button/floating-button.js -->
|
||||
<g id="edge26" class="edge">
|
||||
<title>components/floating-button/index.js->components/floating-button/floating-button.js</title>
|
||||
<path fill="none" stroke="#757575" d="M1853.97,-364.93C1939.72,-364.93 2058.19,-364.93 2152.03,-364.93"/>
|
||||
<polygon fill="#757575" stroke="#757575" points="2151.84,-368.43 2161.84,-364.93 2151.84,-361.43 2151.84,-368.43"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 33 KiB |
@ -144317,6 +144317,126 @@
|
||||
</translation>
|
||||
</translations>
|
||||
</concept_node>
|
||||
<concept_node>
|
||||
<name>WebhookCreated</name>
|
||||
<description/>
|
||||
<comment/>
|
||||
<default_text/>
|
||||
<translations>
|
||||
<translation>
|
||||
<language>ar-SA</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>az-Latn-AZ</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>bg-BG</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>cs-CZ</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>de-DE</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>el-GR</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>en-US</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>es-ES</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>fi-FI</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>fr-FR</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>hy-AM</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>it-IT</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>ja-JP</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>ko-KR</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>lo-LA</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>lv-LV</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>nl-NL</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>pl-PL</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>pt-BR</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>pt-PT</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>ro-RO</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>ru-RU</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>sk-SK</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>sl-SI</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>tr-TR</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>uk-UA</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>vi-VN</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>zh-CN</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
</translations>
|
||||
</concept_node>
|
||||
<concept_node>
|
||||
<name>WebhookCreationHint</name>
|
||||
<description/>
|
||||
|
@ -8,8 +8,8 @@
|
||||
]
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18",
|
||||
"yarn": ">=3"
|
||||
"node": ">=20",
|
||||
"yarn": ">=4"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "node ./common/scripts/before-build.js && yarn workspaces foreach -vptiR --from '{@docspace/client,@docspace/login,@docspace/editor,@docspace/management}' run build",
|
||||
@ -44,5 +44,5 @@
|
||||
"shx": "^0.3.4",
|
||||
"terser": "^5.16.6"
|
||||
},
|
||||
"packageManager": "yarn@3.2.4"
|
||||
"packageManager": "yarn@4.0.2"
|
||||
}
|
||||
|
@ -38,7 +38,7 @@
|
||||
"BackupCreatedSuccess": "تم إنشاء النسخة الاحتياطية بنجاح.",
|
||||
"BackupList": "قائمة النسخ الاحتياطي",
|
||||
"BackupListWarningText": "إذا قمت بحذف أي عناصر من القائمة ، فسيتم أيضًا حذف الملفات المقابلة لها. لا يمكن التراجع عن هذا الإجراء. لحذف جميع الملفات استخدم الرابط:",
|
||||
"BetaLabel": "بيتا",
|
||||
"BetaLabel": "BETA",
|
||||
"BlockingTime": "وقت الحظر (بالثانية)",
|
||||
"Branding": "العلامة التجارية",
|
||||
"BrandingSectionDescription": "حدد معلومات شركتك، وأضف روابط إلى الموارد الخارجية وعناوين البريد الإلكتروني المعروضة في واجهة DocSpace.",
|
||||
|
@ -8,12 +8,16 @@
|
||||
"CustomRoomTitle": "Custom room",
|
||||
"FillingFormsRoomDescription": "Build, share and fill document templates or work with the ready presets to quickly create documents of any type.",
|
||||
"FillingFormsRoomTitle": "Filling forms room",
|
||||
"FormRoomDescription": "Share forms with anyone and collect the complete forms in the Complete folder. Users can fill out any form multiple times creating separate final files. In Basic form rooms, you can't add multiple user roles to the forms.",
|
||||
"FormRoomTitle": "Basic form room",
|
||||
"Icon": "Icon",
|
||||
"MakeRoomPrivateDescription": "All files in this room will be encrypted.",
|
||||
"MakeRoomPrivateLimitationsWarningDescription": "With this feature, you can invite only existing DocSpace users. After creating a room, you will not be able to change the list of users.",
|
||||
"MakeRoomPrivateTitle": "Make the Room Private",
|
||||
"PublicRoomBarDescription": "This room is available to anyone with the link. External users will have View Only permission for all the files.",
|
||||
"PublicRoomDescription": "Invite users via external links to view documents without registration. You can also embed this room into any web interface.",
|
||||
"PublicRoomSystemFoldersDescription": "System folders store copies of forms at different stages of completion. Forms that are being filled are stored in In progress folder, and completed forms are stored in Complete folder.",
|
||||
"PublicRoomSystemFoldersTitle": "System Folders",
|
||||
"ReviewRoomDescription": "Request a review or comments on the documents",
|
||||
"ReviewRoomTitle": "Review room",
|
||||
"RoomEditing": "Room editing",
|
||||
|
@ -15,6 +15,8 @@
|
||||
"ArchiveEmptyScreenUser": "Rooms that have been archived will appear here.",
|
||||
"Archives": "Archives",
|
||||
"AssignOwner": "Assign Owner",
|
||||
"BadgeAlertDescription": "Several roles are specified in this form. Forms with multiple roles are not available for filling in this type of room",
|
||||
"BadgeMyDraftTitle": "My draft",
|
||||
"BackToParentFolderButton": "Back to parent folder",
|
||||
"ByAuthor": "Author",
|
||||
"ByCreation": "Created",
|
||||
@ -56,6 +58,14 @@
|
||||
"EmptyFilterSubheadingText": "No files to be displayed for this filter here",
|
||||
"EmptyFolderDecription": "Drop files here or create new ones",
|
||||
"EmptyFolderDescriptionUser": "Files and folders uploaded by admins will appear here.",
|
||||
"EmptyFolderHeader": "No files in this folder",
|
||||
"EmptyFormFolderDoneHeaderText": "No finished forms yet",
|
||||
"EmptyFormFolderDoneDescriptionText": "This section will display all forms that are complete.",
|
||||
"EmptyFormFolderProgressHeaderText": "Nothing here yet",
|
||||
"EmptyFormFolderProgressDescriptionText": "This section will display the forms in progress.",
|
||||
"EmptyFormSubFolderHeaderText": "No files in this folder yet",
|
||||
"EmptyFormSubFolderDoneDescriptionText": "Here you will find forms which have been completely filled out by other users.",
|
||||
"EmptyFormSubFolderProgressDescriptionText": "Here you will find forms in progress, i.e. forms which users have started to fill out but haven't completed. ",
|
||||
"EmptyRecycleBin": "Empty Trash",
|
||||
"EmptyRootRoomHeader": "Welcome to DocSpace",
|
||||
"EmptyScreenFolder": "No docs here yet",
|
||||
@ -72,6 +82,7 @@
|
||||
"Folder": "Folder",
|
||||
"FolderRemoved": "Folder moved to Trash",
|
||||
"FolderRenamed": "The folder '{{folderTitle}}' is renamed to '{{newFoldedTitle}}'",
|
||||
"FormRoom": "Form room",
|
||||
"Forms": "Forms",
|
||||
"FormsTemplates": "Forms templates",
|
||||
"GeneralLink": "General link",
|
||||
@ -106,6 +117,7 @@
|
||||
"MoveToFolderMessage": "You can't move the folder to its subfolder",
|
||||
"MoveToPublicRoom": "This room and all its contents are available to anyone with the link. Do you want to continue?",
|
||||
"MoveToPublicRoomTitle": "Move to Public room",
|
||||
"MyDocuments": "My documents",
|
||||
"New": "New",
|
||||
"NewRoom": "New room",
|
||||
"NoAccessRoomDescription": "You will be redirected to the My Rooms automatically in 5 seconds.",
|
||||
@ -128,7 +140,9 @@
|
||||
"PrivateRoomHeader": "Welcome to ONLYOFFICE private room where every symbol you type is encrypted",
|
||||
"PrivateRoomSupport": "Work in Private Room is available via {{organizationName}} desktop app. <3>Instructions</3>",
|
||||
"PublicRoom": "Public room",
|
||||
"RecentlyAccessible": "Recently accessible via link",
|
||||
"RecentEmptyContainerDescription": "Your last viewed or edited docs will be displayed in this section.",
|
||||
"RecentViaLinkEmptyContainerDescription": "Here you will find a list of the recently opened files shared with you via an external link.",
|
||||
"RecycleBinAction": "Empty trash",
|
||||
"RemovedFromFavorites": "Removed from favorites",
|
||||
"RemoveFromFavorites": "Remove from favorites",
|
||||
@ -152,6 +166,8 @@
|
||||
"SelectorEmptyScreenHeader": "No files and folders here yet",
|
||||
"SendByEmail": "Send by email",
|
||||
"Share": "Share",
|
||||
"ShareFolder": "Share folder",
|
||||
"ShareFolderDescription": "A new room will be created and all the contents of the selected folder will be copied there. Afterwards, you can invite other users to collaborate on the files within a room.",
|
||||
"ShareRoom": "Share room",
|
||||
"ShowLinkActions": "Show link actions",
|
||||
"ShowVersionHistory": "Show version history",
|
||||
|
@ -1,19 +1,35 @@
|
||||
{
|
||||
"AddGroupsForSharingButton": "Add groups",
|
||||
"AddShareMessage": "Add message",
|
||||
"AdditionalLinks": "Additional links",
|
||||
"AdditionalLinkRemove": "Additional link remove",
|
||||
"AnyoneWithLink": "Anyone with the link",
|
||||
"Comment": "Comment",
|
||||
"CopyExternalLink": "Copy external link",
|
||||
"CreateAndCopy": "Create and copy",
|
||||
"CustomFilter": "Custom filter",
|
||||
"DenyAccess": "Deny access",
|
||||
"DoсSpaceUsersOnly": "DoсSpace users only",
|
||||
"Editing": "Editing",
|
||||
"EncryptedFileSharing": "File <strong>{{title}}</strong> successfully shared",
|
||||
"ExternalLink": "External link",
|
||||
"FormFilling": "Form filling",
|
||||
"GeneralAccessLink": "General access link",
|
||||
"GeneralAccessLinkCopied": "General link successfully copied to clipboard",
|
||||
"GeneralAccessLinkCreated": "General link for public viewing successfully created and copied to clipboard",
|
||||
"GeneralAccessLinkRemove": "General access link remove",
|
||||
"InternalLink": "Internal link",
|
||||
"LinkAccessDenied": "Access to the link has been denied",
|
||||
"LinkName": "Link name",
|
||||
"LinkExpireAfter": "The link will expire after <1>{{date}}</1>",
|
||||
"LinkExpired": "The link has expired.",
|
||||
"LinkIsValid": "The link is valid for <1>{{date}}</1>",
|
||||
"Notify users": "Notify users",
|
||||
"ReadOnly": "Read only",
|
||||
"ShareEmailBody": "You have been granted access to the {{itemName}} document. Click the link below to open the document right now: {{shareLink}}.",
|
||||
"ShareEmailSubject": "You have been granted access to the {{itemName}} document",
|
||||
"ShareDocument": "Share this document",
|
||||
"ShareDocumentDescription": "Provide access to the document and set the permission levels.",
|
||||
"ShareVia": "Share via",
|
||||
"SharingSettingsTitle": "Sharing settings"
|
||||
}
|
||||
|
@ -45,6 +45,7 @@
|
||||
"UnselectAll": "Unselect all",
|
||||
"URL": "URL",
|
||||
"ViewRawPayload": "View raw payload",
|
||||
"WebhookCreated": "Webhook created",
|
||||
"WebhookCreationHint": "This webhook will be assigned to all events in DocSpace",
|
||||
"WebhookDetails": "Webhook details",
|
||||
"WebhookEditedSuccessfully": "Webhook configuration edited successfully",
|
||||
|
@ -38,7 +38,7 @@
|
||||
"BackupCreatedSuccess": "Պահուստային պատճենը հաջողությամբ ստեղծվել է:",
|
||||
"BackupList": "Պահուստի ցուցակ",
|
||||
"BackupListWarningText": "Եթե ցանկից որևէ միավոր ջնջեք, դրանց համապատասխան ֆայլերը նույնպես կջնջվեն: Այս գործողությունը հնարավոր չէ հետարկել:Բոլոր ֆայլերը ջնջելու համար օգտագործեք հղումը.",
|
||||
"BetaLabel": "ԲԵՏԱ",
|
||||
"BetaLabel": "BETA",
|
||||
"BlockingTime": "Արգելափակման ժամանակը (վրկ)",
|
||||
"Branding": "Բրենդինգ",
|
||||
"BrandingSectionDescription": "Նշեք ձեր ընկերության տվյալները, ավելացրեք հղումներ դեպի արտաքին ռեսուրսներ և էլփոստի հասցեներ, որոնք ցուցադրվում են DocSpace ինտերֆեյսում:",
|
||||
|
@ -38,7 +38,7 @@
|
||||
"BackupCreatedSuccess": "백업 복사본 생성에 성공했습니다.",
|
||||
"BackupList": "백업 목록",
|
||||
"BackupListWarningText": "목록에서 항목을 삭제하면 그에 상응하는 파일도 삭제됩니다. 이 작업은 취소할 수 없습니다. 모든 파일을 삭제하려면 다음 링크를 사용하시기 바랍니다:",
|
||||
"BetaLabel": "베타",
|
||||
"BetaLabel": "BETA",
|
||||
"BlockingTime": "차단 시간(초)",
|
||||
"Branding": "브랜딩",
|
||||
"BrandingSectionDescription": "회사 정보를 지정하고 DocSpace 인터페이스 내에 표시되는 이메일 주소 및 외부 리소스에 대한 링크를 추가하세요.",
|
||||
|
@ -35,6 +35,7 @@
|
||||
"BackupCreatedSuccess": "ສຳເນົາສໍາຮອງໄດ້ຖືກສ້າງສຳເລັດແລ້ວ.",
|
||||
"BackupList": "ສໍາຮອງຂໍ້ມູນ ລາຍການ",
|
||||
"BackupListWarningText": "ຖ້າທ່ານລຶບລາຍການໃດໆອອກຈາກບັນຊີລາຍຊື່, ໄຟລ໌ທີ່ສອດຄ້ອງກັນຂອງພວກມັນຈະຖືກລຶບຖິ້ມ. ການດໍາເນີນການນີ້ບໍ່ສາມາດຍົກເລີກໄດ້. ເພື່ອລຶບໄຟລ໌ທັງຫມົດໃຫ້ໃຊ້ການເຊື່ອມຕໍ່:",
|
||||
"BetaLabel": "BETA",
|
||||
"Branding": "ຍີ່ຫໍ້",
|
||||
"BrandingSectionDescription": "ລະບຸຂໍ້ມູນບໍລິສັດຂອງທ່ານ, ເພີ່ມການເຊື່ອມຕໍ່ກັບຊັບພະຍາກອນພາຍນອກ ແລະທີ່ຢູ່ອີເມວທີ່ສະແດງຢູ່ໃນ ສ່ວນຕິດຕໍ່ DocSpace.",
|
||||
"BrandingSubtitle": "ໃຊ້ຕົວເລືອກນີ້ເພື່ອສະໜອງປະສົບການໃນຍີ່ຫໍ້ໃຫ້ກັບຜູ້ໃຊ້.",
|
||||
|
@ -38,7 +38,7 @@
|
||||
"BackupCreatedSuccess": "Резервная копия успешно создана.",
|
||||
"BackupList": "Список резервных копий",
|
||||
"BackupListWarningText": "При удалении любых элементов из списка соответствующие им файлы тоже будут удалены. Это действие необратимо. Для удаления всех файлов используйте ссылку:",
|
||||
"BetaLabel": "БЕТА",
|
||||
"BetaLabel": "BETA",
|
||||
"BlockingTime": "Время блокировки (сек)",
|
||||
"Branding": "Брендинг",
|
||||
"BrandingSectionDescription": "Укажите информацию о своей компании, добавьте ссылки на внешние ресурсы и адреса электронной почты, отображаемые в интерфейсе DocSpace.",
|
||||
|
@ -45,6 +45,7 @@
|
||||
"UnselectAll": "Отменить выбор для всех",
|
||||
"URL": "URL",
|
||||
"ViewRawPayload": "Просмотр исходной полезной нагрузки",
|
||||
"WebhookCreated": "Вебхук создан",
|
||||
"WebhookCreationHint": "Этот вебхук будет назначен всем событиям в DocSpace",
|
||||
"WebhookDetails": "Сведения о вебхуке",
|
||||
"WebhookEditedSuccessfully": "Конфигурация вебхука успешно отредактирована",
|
||||
|
@ -38,7 +38,7 @@
|
||||
"BackupCreatedSuccess": "备份副本已成功创建。",
|
||||
"BackupList": "备份列表",
|
||||
"BackupListWarningText": "若您从列表中删除任何项目,其相应的文件也将被删除。此操作无法撤消。若想删除所有文件,请使用以下链接:",
|
||||
"BetaLabel": "测试版",
|
||||
"BetaLabel": "BETA",
|
||||
"BlockingTime": "锁定时间(秒)",
|
||||
"Branding": "品牌",
|
||||
"BrandingSectionDescription": "在协作空间界面中展示您的公司信息,添加外部资源链接与邮件地址。",
|
||||
|
@ -1,5 +1,5 @@
|
||||
const path = require("path");
|
||||
const beforeBuild = require("@docspace/common/utils/beforeBuild");
|
||||
const beforeBuild = require("@docspace/shared/utils/beforeBuild");
|
||||
|
||||
beforeBuild(
|
||||
[
|
||||
|
@ -1,4 +1,4 @@
|
||||
//import "@docspace/common/utils/wdyr";
|
||||
// import "@docspace/shared/utils/wdyr";
|
||||
import React from "react";
|
||||
import { RouterProvider } from "react-router-dom";
|
||||
|
||||
|
@ -8,8 +8,8 @@ import {
|
||||
updateTempContent,
|
||||
showLoader,
|
||||
hideLoader,
|
||||
} from "@docspace/common/utils";
|
||||
import { regDesktop } from "@docspace/common/desktop";
|
||||
} from "@docspace/shared/utils/common";
|
||||
import { regDesktop } from "@docspace/shared/utils/desktop";
|
||||
|
||||
import { toastr } from "@docspace/shared/components/toast";
|
||||
|
||||
|
@ -3,7 +3,7 @@ import styled from "styled-components";
|
||||
import { ReactSVG } from "react-svg";
|
||||
import { mobile } from "@docspace/shared/utils";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { getLogoFromPath } from "@docspace/common/utils";
|
||||
import { getLogoFromPath } from "@docspace/shared/utils";
|
||||
|
||||
const StyledWrapper = styled.div`
|
||||
.logo-wrapper {
|
||||
|
@ -1,7 +1,7 @@
|
||||
import React from "react";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { ShareAccessRights, FileStatus } from "@docspace/common/constants";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import { ShareAccessRights, FileStatus } from "@docspace/shared/enums";
|
||||
import { combineUrl } from "@docspace/shared/utils/combineUrl";
|
||||
|
||||
import Badges from "../components/Badges";
|
||||
import config from "PACKAGE_FILE";
|
||||
@ -111,23 +111,26 @@ export default function withBadges(WrappedComponent) {
|
||||
isAdmin,
|
||||
isVisitor,
|
||||
isDesktopClient,
|
||||
sectionWidth,
|
||||
viewAs,
|
||||
isMutedBadge,
|
||||
isArchiveFolderRoot,
|
||||
isArchiveFolder,
|
||||
isPublicRoom,
|
||||
isRecentTab,
|
||||
} = this.props;
|
||||
const { fileStatus, access, mute } = item;
|
||||
|
||||
const newItems =
|
||||
item.new ||
|
||||
(!mute && (fileStatus & FileStatus.IsNew) === FileStatus.IsNew);
|
||||
const showNew = !!newItems;
|
||||
const showNew = !!newItems && !isPublicRoom;
|
||||
|
||||
const accessToEdit =
|
||||
access === ShareAccessRights.FullAccess ||
|
||||
access === ShareAccessRights.None; // TODO: fix access type for owner (now - None)
|
||||
|
||||
const canEditing = access === ShareAccessRights.Editing;
|
||||
|
||||
const badgesComponent = (
|
||||
<Badges
|
||||
t={t}
|
||||
@ -137,7 +140,6 @@ export default function withBadges(WrappedComponent) {
|
||||
isVisitor={isVisitor}
|
||||
showNew={showNew}
|
||||
newItems={newItems}
|
||||
sectionWidth={sectionWidth}
|
||||
isTrashFolder={isTrashFolder}
|
||||
isPrivacyFolder={isPrivacyFolder}
|
||||
isArchiveFolderRoot={isArchiveFolderRoot}
|
||||
@ -153,6 +155,8 @@ export default function withBadges(WrappedComponent) {
|
||||
isMutedBadge={isMutedBadge}
|
||||
onCopyPrimaryLink={this.onCopyPrimaryLink}
|
||||
isArchiveFolder={isArchiveFolder}
|
||||
isRecentTab={isRecentTab}
|
||||
canEditing={canEditing}
|
||||
/>
|
||||
);
|
||||
|
||||
@ -180,6 +184,7 @@ export default function withBadges(WrappedComponent) {
|
||||
isPrivacyFolder,
|
||||
isArchiveFolderRoot,
|
||||
isArchiveFolder,
|
||||
isRecentTab,
|
||||
} = treeFoldersStore;
|
||||
const { markAsRead, setPinAction, setMuteAction } = filesActionsStore;
|
||||
const { isTabletView, isDesktopClient, theme } = auth.settingsStore;
|
||||
@ -218,6 +223,8 @@ export default function withBadges(WrappedComponent) {
|
||||
isMutedBadge,
|
||||
getPrimaryLink,
|
||||
isArchiveFolder,
|
||||
isPublicRoom: publicRoomStore.isPublicRoom,
|
||||
isRecentTab,
|
||||
};
|
||||
}
|
||||
)(observer(WithBadges));
|
||||
|
@ -5,8 +5,8 @@ import {
|
||||
// FileAction,
|
||||
FileStatus,
|
||||
ShareAccessRights,
|
||||
} from "@docspace/common/constants";
|
||||
//import { combineUrl } from "@docspace/common/utils";
|
||||
} from "@docspace/shared/enums";
|
||||
//import { combineUrl } from "@docspace/shared/utils/combineUrl";
|
||||
import { getCorrectDate, getCookie } from "@docspace/shared/utils";
|
||||
import { LANGUAGE } from "@docspace/shared/constants";
|
||||
import config from "PACKAGE_FILE";
|
||||
|
@ -1,7 +1,7 @@
|
||||
import React from "react";
|
||||
import { inject, observer } from "mobx-react";
|
||||
|
||||
import { DeviceType } from "@docspace/common/constants";
|
||||
import { DeviceType } from "@docspace/shared/enums";
|
||||
|
||||
export default function withFileActions(WrappedFileItem) {
|
||||
class WithFileActions extends React.Component {
|
||||
@ -53,10 +53,12 @@ export default function withFileActions(WrappedFileItem) {
|
||||
};
|
||||
|
||||
onDrop = (items) => {
|
||||
const { isTrashFolder, dragging, setDragging } = this.props;
|
||||
const { isTrashFolder, dragging, setDragging, isDisabledDropItem } =
|
||||
this.props;
|
||||
const { fileExst, id } = this.props.item;
|
||||
|
||||
if (isTrashFolder) return dragging && setDragging(false);
|
||||
if (isTrashFolder || isDisabledDropItem)
|
||||
return dragging && setDragging(false);
|
||||
|
||||
if (!fileExst) {
|
||||
this.onDropZoneUpload(items, id);
|
||||
@ -81,6 +83,7 @@ export default function withFileActions(WrappedFileItem) {
|
||||
isSelected,
|
||||
setSelection,
|
||||
currentDeviceType,
|
||||
isDisabledItemId,
|
||||
} = this.props;
|
||||
|
||||
const { isThirdPartyFolder } = item;
|
||||
@ -200,7 +203,7 @@ export default function withFileActions(WrappedFileItem) {
|
||||
item.foldersCount === 0
|
||||
) {
|
||||
setParentId(item.parentId);
|
||||
setRoomType(item.roomType);
|
||||
// setRoomType(item.roomType);
|
||||
}
|
||||
|
||||
openFileAction(item);
|
||||
@ -249,10 +252,16 @@ export default function withFileActions(WrappedFileItem) {
|
||||
|
||||
itemIndex,
|
||||
currentDeviceType,
|
||||
isDisabledDropItem,
|
||||
} = this.props;
|
||||
const { access, id } = item;
|
||||
|
||||
const isDragging = isFolder && access < 2 && !isTrashFolder && !isPrivacy;
|
||||
const isDragging =
|
||||
!isDisabledDropItem &&
|
||||
isFolder &&
|
||||
access < 2 &&
|
||||
!isTrashFolder &&
|
||||
!isPrivacy;
|
||||
|
||||
let className = isDragging ? " droppable" : "";
|
||||
if (draggable) className += " draggable";
|
||||
@ -364,7 +373,10 @@ export default function withFileActions(WrappedFileItem) {
|
||||
(x) => x.id === item.id && x.fileExst === item.fileExst
|
||||
);
|
||||
|
||||
const draggable = !isRecycleBinFolder && selectedItem;
|
||||
const isDisabledDropItem = !item.security.Create;
|
||||
|
||||
const draggable =
|
||||
!isRecycleBinFolder && selectedItem && !isDisabledDropItem;
|
||||
|
||||
const isFolder = selectedItem ? false : !item.isFolder ? false : true;
|
||||
|
||||
@ -448,6 +460,7 @@ export default function withFileActions(WrappedFileItem) {
|
||||
|
||||
setSelection,
|
||||
currentDeviceType: auth.settingsStore.currentDeviceType,
|
||||
isDisabledDropItem,
|
||||
};
|
||||
}
|
||||
)(observer(WithFileActions));
|
||||
|
@ -2,10 +2,10 @@ import { useEffect, useState } from "react";
|
||||
import { useHotkeys } from "react-hotkeys-hook";
|
||||
import { observer, inject } from "mobx-react";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import { Events } from "@docspace/common/constants";
|
||||
import { Events } from "@docspace/shared/enums";
|
||||
import { toastr } from "@docspace/shared/components/toast";
|
||||
import throttle from "lodash/throttle";
|
||||
import { checkDialogsOpen } from "@docspace/common/utils/checkDialogsOpen";
|
||||
import { checkDialogsOpen } from "@docspace/shared/utils/checkDialogsOpen";
|
||||
|
||||
const withHotkeys = (Component) => {
|
||||
const WithHotkeys = (props) => {
|
||||
|
@ -53,6 +53,16 @@ export default function withQuickButtons(WrappedComponent) {
|
||||
.catch((err) => toastr.error(err));
|
||||
};
|
||||
|
||||
onClickShare = async () => {
|
||||
const { t, item, getPrimaryFileLink, setShareChanged } = this.props;
|
||||
const primaryLink = await getPrimaryFileLink(item.id);
|
||||
if (primaryLink) {
|
||||
copy(primaryLink.sharedTo.shareLink);
|
||||
toastr.success(t("Files:LinkSuccessfullyCopied"));
|
||||
setShareChanged(true);
|
||||
}
|
||||
};
|
||||
|
||||
onCopyPrimaryLink = async () => {
|
||||
const { t, item, getPrimaryLink } = this.props;
|
||||
const primaryLink = await getPrimaryLink(item.id);
|
||||
@ -74,6 +84,7 @@ export default function withQuickButtons(WrappedComponent) {
|
||||
viewAs,
|
||||
folderCategory,
|
||||
isPublicRoom,
|
||||
isPersonalRoom,
|
||||
isArchiveFolder,
|
||||
} = this.props;
|
||||
|
||||
@ -87,9 +98,11 @@ export default function withQuickButtons(WrappedComponent) {
|
||||
viewAs={viewAs}
|
||||
isDisabled={isLoading}
|
||||
isPublicRoom={isPublicRoom}
|
||||
isPersonalRoom={isPersonalRoom}
|
||||
onClickLock={this.onClickLock}
|
||||
onClickDownload={this.onClickDownload}
|
||||
onClickFavorite={this.onClickFavorite}
|
||||
onClickShare={this.onClickShare}
|
||||
folderCategory={folderCategory}
|
||||
onCopyPrimaryLink={this.onCopyPrimaryLink}
|
||||
isArchiveFolder={isArchiveFolder}
|
||||
@ -120,6 +133,7 @@ export default function withQuickButtons(WrappedComponent) {
|
||||
isPersonalFolderRoot,
|
||||
isArchiveFolderRoot,
|
||||
isTrashFolder,
|
||||
isPersonalRoom,
|
||||
isArchiveFolder,
|
||||
} = treeFoldersStore;
|
||||
|
||||
@ -129,6 +143,7 @@ export default function withQuickButtons(WrappedComponent) {
|
||||
isTrashFolder || isArchiveFolderRoot || isPersonalFolderRoot;
|
||||
|
||||
const { isPublicRoom } = publicRoomStore;
|
||||
const { getPrimaryFileLink, setShareChanged } = auth.infoPanelStore;
|
||||
|
||||
return {
|
||||
theme: auth.settingsStore.theme,
|
||||
@ -139,8 +154,11 @@ export default function withQuickButtons(WrappedComponent) {
|
||||
setSharingPanelVisible,
|
||||
folderCategory,
|
||||
isPublicRoom,
|
||||
isPersonalRoom,
|
||||
getPrimaryLink: filesStore.getPrimaryLink,
|
||||
isArchiveFolder,
|
||||
getPrimaryFileLink,
|
||||
setShareChanged,
|
||||
};
|
||||
}
|
||||
)(observer(WithQuickButtons));
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { useEffect, useContext } from "react";
|
||||
|
||||
import { DeviceType } from "@docspace/common/constants";
|
||||
import { DeviceType } from "@docspace/shared/enums";
|
||||
//@ts-ignore
|
||||
import { isTablet, isMobile, Context } from "@docspace/shared/utils";
|
||||
import { isMobile as isMobileDevice } from "react-device-detect";
|
||||
|
@ -11,7 +11,8 @@ import { ThemeProvider } from "@docspace/shared/components/theme-provider";
|
||||
import { SnackBar } from "@docspace/shared/components/snackbar";
|
||||
import { Portal } from "@docspace/shared/components/portal";
|
||||
|
||||
import { getLogoFromPath, updateTempContent } from "@docspace/common/utils";
|
||||
import { updateTempContent } from "@docspace/shared/utils/common";
|
||||
import { getLogoFromPath } from "@docspace/shared/utils";
|
||||
|
||||
import store from "client/store";
|
||||
|
||||
@ -21,15 +22,15 @@ import i18n from "./i18n";
|
||||
|
||||
import moment from "moment-timezone";
|
||||
//import ReactSmartBanner from "./components/SmartBanner";
|
||||
import { useThemeDetector } from "@docspace/common/utils/useThemeDetector";
|
||||
import { useThemeDetector } from "@docspace/shared/hooks/useThemeDetector";
|
||||
import { isMobile, isIOS, isFirefox } from "react-device-detect";
|
||||
import IndicatorLoader from "./components/IndicatorLoader";
|
||||
import DialogsWrapper from "./components/dialogs/DialogsWrapper";
|
||||
import MainBar from "./components/MainBar";
|
||||
|
||||
import indexedDbHelper from "@docspace/common/utils/indexedDBHelper";
|
||||
import { DeviceType, IndexedDBStores } from "@docspace/common/constants";
|
||||
import { getRestoreProgress } from "@docspace/common/api/portal";
|
||||
import indexedDbHelper from "@docspace/shared/utils/indexedDBHelper";
|
||||
import { DeviceType, IndexedDBStores } from "@docspace/shared/enums";
|
||||
import { getRestoreProgress } from "@docspace/shared/api/portal";
|
||||
import { useTheme } from "styled-components";
|
||||
|
||||
const Shell = ({ items = [], page = "home", ...rest }) => {
|
||||
|
2
packages/client/src/bootstrap.js
vendored
2
packages/client/src/bootstrap.js
vendored
@ -1,7 +1,7 @@
|
||||
import React from "react";
|
||||
import { createRoot } from "react-dom/client";
|
||||
import App from "./App";
|
||||
//import { registerSW } from "@docspace/common/sw/helper";
|
||||
//import { registerSW } from "@docspace/shared/sw/helper";
|
||||
|
||||
const container = document.getElementById("root");
|
||||
const root = createRoot(container);
|
||||
|
@ -2,8 +2,8 @@
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { withTranslation } from "react-i18next";
|
||||
|
||||
import { PageType } from "@docspace/common/constants";
|
||||
import { getCatalogIconUrlByType } from "@docspace/common/utils/catalogIcon.helper";
|
||||
import { PageType } from "@docspace/shared/enums";
|
||||
import { getCatalogIconUrlByType } from "@docspace/shared/utils/catalogIconHelper";
|
||||
|
||||
import { ArticleItem } from "@docspace/shared/components/article-item";
|
||||
|
||||
|
@ -3,7 +3,7 @@ import { inject, observer } from "mobx-react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
|
||||
import { ArticleItem } from "@docspace/shared/components/article-item";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import { combineUrl } from "@docspace/shared/utils/combineUrl";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import GiftReactSvgUrl from "PUBLIC_DIR/images/gift.react.svg?url";
|
||||
|
||||
|
@ -7,10 +7,10 @@ import { withTranslation } from "react-i18next";
|
||||
import {
|
||||
FolderType,
|
||||
ShareAccessRights,
|
||||
FolderNames,
|
||||
DeviceType,
|
||||
} from "@docspace/common/constants";
|
||||
import { getCatalogIconUrlByType } from "@docspace/common/utils/catalogIcon.helper";
|
||||
} from "@docspace/shared/enums";
|
||||
import { FOLDER_NAMES } from "@docspace/shared/constants";
|
||||
import { getCatalogIconUrlByType } from "@docspace/shared/utils/catalogIconHelper";
|
||||
|
||||
import { ArticleItem } from "@docspace/shared/components/article-item";
|
||||
import DragAndDrop from "@docspace/shared/components/drag-and-drop/DragAndDrop";
|
||||
@ -236,10 +236,13 @@ const Items = ({
|
||||
return true;
|
||||
}
|
||||
|
||||
if (
|
||||
(item.rootFolderType === FolderType.TRASH && startDrag && !isArchive) ||
|
||||
item.rootFolderType === FolderType.USER
|
||||
) {
|
||||
if (item.rootFolderType === FolderType.TRASH && startDrag && !isArchive) {
|
||||
return draggableItems.some(
|
||||
(draggableItem) => draggableItem.security.Delete
|
||||
);
|
||||
}
|
||||
|
||||
if (item.rootFolderType === FolderType.USER) {
|
||||
return (
|
||||
folderAccess === ShareAccessRights.None ||
|
||||
folderAccess === ShareAccessRights.FullAccess ||
|
||||
@ -312,7 +315,7 @@ const Items = ({
|
||||
showBadge={showBadge}
|
||||
labelBadge={labelBadge}
|
||||
iconBadge={iconBadge}
|
||||
folderId={`document_catalog-${FolderNames[item.rootFolderType]}`}
|
||||
folderId={`document_catalog-${FOLDER_NAMES[item.rootFolderType]}`}
|
||||
/>
|
||||
);
|
||||
});
|
||||
|
@ -5,13 +5,13 @@ import { withTranslation } from "react-i18next";
|
||||
|
||||
import { useNavigate, useLocation } from "react-router-dom";
|
||||
|
||||
import { DeviceType, RoomSearchArea } from "@docspace/common/constants";
|
||||
import { DeviceType, RoomSearchArea } from "@docspace/shared/enums";
|
||||
import Items from "./Items";
|
||||
import { tablet } from "@docspace/shared/utils";
|
||||
|
||||
import FilesFilter from "@docspace/common/api/files/filter";
|
||||
import RoomsFilter from "@docspace/common/api/rooms/filter";
|
||||
import AccountsFilter from "@docspace/common/api/people/filter";
|
||||
import FilesFilter from "@docspace/shared/api/files/filter";
|
||||
import RoomsFilter from "@docspace/shared/api/rooms/filter";
|
||||
import AccountsFilter from "@docspace/shared/api/people/filter";
|
||||
|
||||
import Banner from "./Banner";
|
||||
|
||||
|
@ -28,11 +28,11 @@ import { useNavigate, useLocation } from "react-router-dom";
|
||||
|
||||
import MobileView from "./MobileView";
|
||||
|
||||
import { Events, EmployeeType, DeviceType } from "@docspace/common/constants";
|
||||
import { Events, EmployeeType, DeviceType } from "@docspace/shared/enums";
|
||||
|
||||
import styled, { css } from "styled-components";
|
||||
|
||||
import { resendInvitesAgain } from "@docspace/common/api/people";
|
||||
import { resendInvitesAgain } from "@docspace/shared/api/people";
|
||||
import { getCorrectFourValuesStyle } from "@docspace/shared/utils";
|
||||
|
||||
const StyledButton = styled(Button)`
|
||||
|
@ -1,26 +1,23 @@
|
||||
import UnpinReactSvgUrl from "PUBLIC_DIR/images/unpin.react.svg?url";
|
||||
import styled from "styled-components";
|
||||
import React, { useState } from "react";
|
||||
|
||||
import UnpinReactSvgUrl from "PUBLIC_DIR/images/unpin.react.svg?url";
|
||||
import RefreshReactSvgUrl from "PUBLIC_DIR/images/refresh.react.svg?url";
|
||||
import FormFillRectSvgUrl from "PUBLIC_DIR/images/form.fill.rect.svg?url";
|
||||
import AccessEditFormReactSvgUrl from "PUBLIC_DIR/images/access.edit.form.react.svg?url";
|
||||
import FileActionsConvertEditDocReactSvgUrl from "PUBLIC_DIR/images/file.actions.convert.edit.doc.react.svg?url";
|
||||
import LinkReactSvgUrl from "PUBLIC_DIR/images/link.react.svg?url";
|
||||
import TabletLinkReactSvgUrl from "PUBLIC_DIR/images/tablet-link.reat.svg?url";
|
||||
import RefreshReactSvgUrl from "PUBLIC_DIR/images/refresh.react.svg?url";
|
||||
import Refresh12ReactSvgUrl from "PUBLIC_DIR/images/icons/12/refresh.react.svg?url";
|
||||
import Mute12ReactSvgUrl from "PUBLIC_DIR/images/icons/12/mute.react.svg?url";
|
||||
import Mute16ReactSvgUrl from "PUBLIC_DIR/images/icons/16/mute.react.svg?url";
|
||||
|
||||
import React, { useState } from "react";
|
||||
import styled from "styled-components";
|
||||
import { isMobile as isMobileDevice } from "react-device-detect";
|
||||
|
||||
import { Badge } from "@docspace/shared/components/badge";
|
||||
import { ColorTheme, ThemeId } from "@docspace/shared/components/color-theme";
|
||||
|
||||
import {
|
||||
FileStatus,
|
||||
RoomsType,
|
||||
ShareAccessRights,
|
||||
} from "@docspace/common/constants";
|
||||
import { RoomsType, ShareAccessRights } from "@docspace/shared/enums";
|
||||
import { Base } from "@docspace/shared/themes";
|
||||
|
||||
import { isTablet, isDesktop, size, classNames } from "@docspace/shared/utils";
|
||||
@ -68,7 +65,6 @@ const Badges = ({
|
||||
t,
|
||||
theme,
|
||||
newItems,
|
||||
sectionWidth,
|
||||
item,
|
||||
isTrashFolder,
|
||||
isPrivacyFolder,
|
||||
@ -87,6 +83,8 @@ const Badges = ({
|
||||
isVisitor,
|
||||
onCopyPrimaryLink,
|
||||
isArchiveFolder,
|
||||
isRecentTab,
|
||||
canEditing,
|
||||
}) => {
|
||||
const {
|
||||
id,
|
||||
@ -101,6 +99,7 @@ const Badges = ({
|
||||
mute,
|
||||
rootFolderId,
|
||||
new: newCount,
|
||||
hasDraft,
|
||||
} = item;
|
||||
|
||||
const showEditBadge = !locked || item.access === 0;
|
||||
@ -108,6 +107,7 @@ const Badges = ({
|
||||
const isForm = fileExst === ".oform";
|
||||
const isPdf = fileExst === ".pdf";
|
||||
const isTile = viewAs === "tile";
|
||||
const isViewTable = viewAs === "table";
|
||||
|
||||
const countVersions = versionGroup > 999 ? "999+" : versionGroup;
|
||||
|
||||
@ -190,7 +190,23 @@ const Badges = ({
|
||||
|
||||
return fileExst ? (
|
||||
<div className="badges additional-badges file__badges">
|
||||
{isEditing && !isVisitor && !isPdf && (
|
||||
{hasDraft && (
|
||||
<BadgeWrapper isTile={isTile}>
|
||||
<Badge
|
||||
noHover
|
||||
isVersionBadge
|
||||
className="badge-version badge-version-current tablet-badge icons-group"
|
||||
backgroundColor={theme.filesBadges.badgeBackgroundColor}
|
||||
label={t("BadgeMyDraftTitle")}
|
||||
title={t("BadgeMyDraftTitle")}
|
||||
{...versionBadgeProps}
|
||||
style={{
|
||||
width: "max-content",
|
||||
}}
|
||||
/>
|
||||
</BadgeWrapper>
|
||||
)}
|
||||
{isEditing && !isVisitor && !isPdf && !(isRecentTab && !canEditing) && (
|
||||
<ColorTheme
|
||||
themeId={ThemeId.IconButton}
|
||||
isEditing={isEditing}
|
||||
@ -239,6 +255,17 @@ const Badges = ({
|
||||
/>
|
||||
</BadgeWrapper>
|
||||
)}
|
||||
{/* {isForm && (
|
||||
<BadgeWrapper isTile={isTile}>
|
||||
<HelpButton
|
||||
color="#F2675A"
|
||||
place="bottom"
|
||||
size={isViewTable ? 12 : 16}
|
||||
className="bagde_alert icons-group"
|
||||
tooltipContent={t("BadgeAlertDescription")}
|
||||
/>
|
||||
</BadgeWrapper>
|
||||
)} */}
|
||||
</div>
|
||||
) : (
|
||||
<div
|
||||
|
@ -0,0 +1,111 @@
|
||||
import { FolderType } from "@docspace/shared/enums";
|
||||
|
||||
import EmptyScreenPersonalUrl from "PUBLIC_DIR/images/empty_screen_personal.svg?url";
|
||||
import EmptyScreenPersonalDarkUrl from "PUBLIC_DIR/images/empty_screen_personal_dark.svg?url";
|
||||
|
||||
import EmptyScreenCorporateSvgUrl from "PUBLIC_DIR/images/empty_screen_corporate.svg?url";
|
||||
import EmptyScreenCorporateDarkSvgUrl from "PUBLIC_DIR/images/empty_screen_corporate_dark.svg?url";
|
||||
|
||||
import EmptyScreenRoleSvgUrl from "PUBLIC_DIR/images/empty_screen_role.svg?url";
|
||||
import EmptyScreenRoleDarkSvgUrl from "PUBLIC_DIR/images/empty_screen_role_dark.svg?url";
|
||||
|
||||
import EmptyScreenDoneSvgUrl from "PUBLIC_DIR/images/empty_screen_done.svg?url";
|
||||
import EmptyScreenDoneDarkSvgUrl from "PUBLIC_DIR/images/empty_screen_done_dark.svg?url";
|
||||
|
||||
type ThemeType = "light" | "dark";
|
||||
|
||||
type FolderTypeOf = typeof FolderType;
|
||||
type FolderTypeValueOfType = FolderTypeOf[keyof FolderTypeOf];
|
||||
|
||||
enum EmptyScreenTypeEnum {
|
||||
Done = "emptyScreenDone",
|
||||
InProgress = "emptyScreenInProgress",
|
||||
Corporate = "emptyScreenCorporate",
|
||||
Default = "emptyScreenDefault",
|
||||
SubFolderDone = "emptyScreenSubFolderDone",
|
||||
SubFolderinProgress = "emptyScreenSubFolderinProgress",
|
||||
}
|
||||
|
||||
export const headerIconsUrl: Record<
|
||||
ThemeType,
|
||||
Record<EmptyScreenTypeEnum, string>
|
||||
> = {
|
||||
light: {
|
||||
[EmptyScreenTypeEnum.Done]: EmptyScreenDoneSvgUrl,
|
||||
[EmptyScreenTypeEnum.InProgress]: EmptyScreenRoleSvgUrl,
|
||||
[EmptyScreenTypeEnum.Default]: EmptyScreenPersonalUrl,
|
||||
[EmptyScreenTypeEnum.Corporate]: EmptyScreenCorporateSvgUrl,
|
||||
[EmptyScreenTypeEnum.SubFolderDone]: EmptyScreenPersonalUrl,
|
||||
[EmptyScreenTypeEnum.SubFolderinProgress]: EmptyScreenPersonalUrl,
|
||||
},
|
||||
dark: {
|
||||
[EmptyScreenTypeEnum.Done]: EmptyScreenDoneDarkSvgUrl,
|
||||
[EmptyScreenTypeEnum.InProgress]: EmptyScreenRoleDarkSvgUrl,
|
||||
[EmptyScreenTypeEnum.Default]: EmptyScreenPersonalDarkUrl,
|
||||
[EmptyScreenTypeEnum.Corporate]: EmptyScreenCorporateDarkSvgUrl,
|
||||
[EmptyScreenTypeEnum.SubFolderDone]: EmptyScreenPersonalDarkUrl,
|
||||
[EmptyScreenTypeEnum.SubFolderinProgress]: EmptyScreenPersonalDarkUrl,
|
||||
},
|
||||
};
|
||||
|
||||
export const translateHeaderKey: Record<EmptyScreenTypeEnum, string> = {
|
||||
[EmptyScreenTypeEnum.Done]: "EmptyFormFolderDoneHeaderText",
|
||||
[EmptyScreenTypeEnum.InProgress]: "EmptyFormFolderProgressHeaderText",
|
||||
[EmptyScreenTypeEnum.Default]: "EmptyScreenFolder",
|
||||
[EmptyScreenTypeEnum.Corporate]: "RoomCreated",
|
||||
[EmptyScreenTypeEnum.SubFolderDone]: "EmptyFormSubFolderHeaderText",
|
||||
[EmptyScreenTypeEnum.SubFolderinProgress]: "EmptyFormSubFolderHeaderText",
|
||||
};
|
||||
export const translateDescriptionKey: Record<EmptyScreenTypeEnum, string> = {
|
||||
[EmptyScreenTypeEnum.Done]: "EmptyFormFolderDoneDescriptionText",
|
||||
[EmptyScreenTypeEnum.InProgress]: "EmptyFormFolderProgressDescriptionText",
|
||||
[EmptyScreenTypeEnum.Default]: "EmptyFolderDescriptionUser",
|
||||
[EmptyScreenTypeEnum.Corporate]: "EmptyFolderDecription",
|
||||
[EmptyScreenTypeEnum.SubFolderDone]: "EmptyFormSubFolderDoneDescriptionText",
|
||||
[EmptyScreenTypeEnum.SubFolderinProgress]:
|
||||
"EmptyFormSubFolderProgressDescriptionText",
|
||||
};
|
||||
|
||||
export const getThemeMode = (theme: { isBase: boolean }): ThemeType => {
|
||||
return theme.isBase ? "light" : "dark";
|
||||
};
|
||||
|
||||
export const getEmptyScreenType = (
|
||||
type: FolderTypeValueOfType | null,
|
||||
displayRoomCondition: boolean
|
||||
): EmptyScreenTypeEnum => {
|
||||
switch (true) {
|
||||
case type === FolderType.Done:
|
||||
return EmptyScreenTypeEnum.Done;
|
||||
case type === FolderType.InProgress:
|
||||
return EmptyScreenTypeEnum.InProgress;
|
||||
case type === FolderType.SubFolderDone:
|
||||
return EmptyScreenTypeEnum.SubFolderDone;
|
||||
case type === FolderType.SubFolderInProgress:
|
||||
return EmptyScreenTypeEnum.SubFolderinProgress;
|
||||
case displayRoomCondition:
|
||||
return EmptyScreenTypeEnum.Corporate;
|
||||
default:
|
||||
return EmptyScreenTypeEnum.Default;
|
||||
}
|
||||
};
|
||||
|
||||
export const getHeaderText = (
|
||||
type: FolderTypeValueOfType | null,
|
||||
displayRoomCondition: boolean,
|
||||
t: Function
|
||||
): string => {
|
||||
const emptyType = getEmptyScreenType(type, displayRoomCondition);
|
||||
const key = translateHeaderKey[emptyType];
|
||||
return t(key);
|
||||
};
|
||||
|
||||
export const getDescriptionText = (
|
||||
type: FolderTypeValueOfType | null,
|
||||
canCreateFiles: boolean,
|
||||
t: Function
|
||||
) => {
|
||||
const emptyType = getEmptyScreenType(type, canCreateFiles);
|
||||
const key = translateDescriptionKey[emptyType];
|
||||
return t(key);
|
||||
};
|
@ -6,8 +6,8 @@ import { useNavigate, useLocation } from "react-router-dom";
|
||||
import { withTranslation } from "react-i18next";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import EmptyContainer from "./EmptyContainer";
|
||||
import FilesFilter from "@docspace/common/api/files/filter";
|
||||
import RoomsFilter from "@docspace/common/api/rooms/filter";
|
||||
import FilesFilter from "@docspace/shared/api/files/filter";
|
||||
import RoomsFilter from "@docspace/shared/api/rooms/filter";
|
||||
import { IconButton } from "@docspace/shared/components/icon-button";
|
||||
import { Link } from "@docspace/shared/components/link";
|
||||
|
||||
|
@ -1,60 +1,61 @@
|
||||
import EmptyScreenPersonalUrl from "PUBLIC_DIR/images/empty_screen_personal.svg?url";
|
||||
import EmptyScreenPersonalDarkUrl from "PUBLIC_DIR/images/empty_screen_personal_dark.svg?url";
|
||||
import EmptyScreenCorporateSvgUrl from "PUBLIC_DIR/images/empty_screen_corporate.svg?url";
|
||||
import EmptyScreenCorporateDarkSvgUrl from "PUBLIC_DIR/images/empty_screen_corporate_dark.svg?url";
|
||||
|
||||
import { useCallback, useMemo } from "react";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { withTranslation } from "react-i18next";
|
||||
|
||||
import EmptyContainer from "./EmptyContainer";
|
||||
import CommonButtons from "./sub-components/CommonButtons";
|
||||
import {
|
||||
getDescriptionText,
|
||||
getEmptyScreenType,
|
||||
getHeaderText,
|
||||
getThemeMode,
|
||||
headerIconsUrl,
|
||||
} from "./EmptyContainer.helper";
|
||||
|
||||
const EmptyFolderContainer = ({
|
||||
t,
|
||||
onCreate,
|
||||
|
||||
type, // folder type
|
||||
linkStyles,
|
||||
|
||||
sectionWidth,
|
||||
canCreateFiles,
|
||||
theme,
|
||||
roomType,
|
||||
//isLoading,
|
||||
isArchiveFolderRoot,
|
||||
isEmptyPage,
|
||||
}) => {
|
||||
//const location = useLocation();
|
||||
|
||||
// const isRoom =
|
||||
// isLoading && location?.state?.isRoom ? location?.state?.isRoom : !!roomType;
|
||||
const isRoom = !!roomType;
|
||||
const displayRoomCondition = isRoom && !isArchiveFolderRoot;
|
||||
|
||||
const buttons = <CommonButtons onCreate={onCreate} linkStyles={linkStyles} />;
|
||||
|
||||
const emptyScreenCorporateSvg = theme.isBase
|
||||
? EmptyScreenCorporateSvgUrl
|
||||
: EmptyScreenCorporateDarkSvgUrl;
|
||||
const emptyScreenAltSvg = theme.isBase
|
||||
? EmptyScreenPersonalUrl
|
||||
: EmptyScreenPersonalDarkUrl;
|
||||
const getIcon = useCallback(() => {
|
||||
const themeMode = getThemeMode(theme);
|
||||
const emptyScreenType = getEmptyScreenType(type, displayRoomCondition);
|
||||
const icon = headerIconsUrl[themeMode][emptyScreenType];
|
||||
|
||||
return icon;
|
||||
}, [theme.isBase, displayRoomCondition, type]);
|
||||
|
||||
const imageSrc = useMemo(getIcon, [getIcon]);
|
||||
const headerText = useMemo(
|
||||
() => getHeaderText(type, displayRoomCondition, t),
|
||||
[t, displayRoomCondition, type]
|
||||
);
|
||||
|
||||
const descriptionText = useMemo(
|
||||
() => getDescriptionText(type, canCreateFiles, t),
|
||||
[t, canCreateFiles, type]
|
||||
);
|
||||
|
||||
return (
|
||||
<EmptyContainer
|
||||
headerText={
|
||||
displayRoomCondition ? t("RoomCreated") : t("EmptyScreenFolder")
|
||||
}
|
||||
descriptionText={
|
||||
canCreateFiles
|
||||
? t("EmptyFolderDecription")
|
||||
: t("EmptyFolderDescriptionUser")
|
||||
}
|
||||
imageSrc={
|
||||
displayRoomCondition ? emptyScreenCorporateSvg : emptyScreenAltSvg
|
||||
}
|
||||
headerText={headerText}
|
||||
descriptionText={descriptionText}
|
||||
buttons={buttons}
|
||||
sectionWidth={sectionWidth}
|
||||
imageSrc={imageSrc}
|
||||
isEmptyPage={isEmptyPage}
|
||||
sectionWidth={sectionWidth}
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
@ -9,7 +9,7 @@ import { useNavigate } from "react-router-dom";
|
||||
import EmptyContainer from "./EmptyContainer";
|
||||
import { Link } from "@docspace/shared/components/link";
|
||||
import { IconButton } from "@docspace/shared/components/icon-button";
|
||||
import RoomsFilter from "@docspace/common/api/rooms/filter";
|
||||
import RoomsFilter from "@docspace/shared/api/rooms/filter";
|
||||
|
||||
import { getCategoryUrl } from "SRC_DIR/helpers/utils";
|
||||
import { CategoryType } from "SRC_DIR/helpers/constants";
|
||||
|
@ -4,7 +4,7 @@ import PlusSvgUrl from "PUBLIC_DIR/images/plus.svg?url";
|
||||
import RoomsReactSvgUrl from "PUBLIC_DIR/images/rooms.react.svg?url";
|
||||
|
||||
import { useNavigate, useLocation } from "react-router-dom";
|
||||
import { FolderType, RoomSearchArea } from "@docspace/common/constants";
|
||||
import { FolderType, RoomSearchArea } from "@docspace/shared/enums";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { withTranslation, Trans } from "react-i18next";
|
||||
import EmptyContainer from "./EmptyContainer";
|
||||
@ -13,8 +13,8 @@ import { Box } from "@docspace/shared/components/box";
|
||||
import { Text } from "@docspace/shared/components/text";
|
||||
import { IconButton } from "@docspace/shared/components/icon-button";
|
||||
|
||||
import RoomsFilter from "@docspace/common/api/rooms/filter";
|
||||
import FilesFilter from "@docspace/common/api/files/filter";
|
||||
import RoomsFilter from "@docspace/shared/api/rooms/filter";
|
||||
import FilesFilter from "@docspace/shared/api/files/filter";
|
||||
|
||||
import { getCategoryUrl } from "SRC_DIR/helpers/utils";
|
||||
import { CategoryType } from "SRC_DIR/helpers/constants";
|
||||
@ -75,7 +75,7 @@ const RootFolderContainer = (props) => {
|
||||
const noFilesHeader = t("NoFilesHereYet");
|
||||
const trashDescription = t("TrashEmptyDescription");
|
||||
const favoritesDescription = t("FavoritesEmptyContainerDescription");
|
||||
const recentDescription = t("RecentEmptyContainerDescription");
|
||||
const recentDescription = t("RecentViaLinkEmptyContainerDescription");
|
||||
|
||||
const roomsDescription =
|
||||
isVisitor || isCollaborator
|
||||
@ -294,7 +294,7 @@ const RootFolderContainer = (props) => {
|
||||
const goToPersonalButtons = (
|
||||
<div className="empty-folder_container-links">
|
||||
<img
|
||||
className="empty-folder_container-image"
|
||||
className="empty-folder_container-icon"
|
||||
src={PersonSvgUrl}
|
||||
alt="person_icon"
|
||||
onClick={onGoToPersonal}
|
||||
|
@ -4,7 +4,7 @@ import { observer, inject } from "mobx-react";
|
||||
import RootFolderContainer from "./RootFolderContainer";
|
||||
import EmptyFilterContainer from "./EmptyFilterContainer";
|
||||
import EmptyFolderContainer from "./EmptyFolderContainer";
|
||||
import { Events } from "@docspace/common/constants";
|
||||
import { Events } from "@docspace/shared/enums";
|
||||
import RoomNoAccessContainer from "./RoomNoAccessContainer";
|
||||
|
||||
const linkStyles = {
|
||||
@ -20,6 +20,7 @@ const EmptyContainer = ({
|
||||
//isLoading,
|
||||
parentId,
|
||||
theme,
|
||||
type,
|
||||
|
||||
sectionWidth,
|
||||
isRoomNotFoundOrMoved,
|
||||
@ -80,6 +81,7 @@ const EmptyContainer = ({
|
||||
sectionWidth={sectionWidth}
|
||||
onCreate={onCreate}
|
||||
linkStyles={linkStyles}
|
||||
type={type}
|
||||
/>
|
||||
);
|
||||
};
|
||||
@ -114,6 +116,7 @@ export default inject(
|
||||
isRoomNotFoundOrMoved,
|
||||
isGracePeriod,
|
||||
setInviteUsersWarningDialogVisible,
|
||||
type: selectedFolderStore.type,
|
||||
};
|
||||
}
|
||||
)(observer(EmptyContainer));
|
||||
|
@ -10,9 +10,9 @@ import { Link } from "@docspace/shared/components/link";
|
||||
import { Box } from "@docspace/shared/components/box";
|
||||
import { Text } from "@docspace/shared/components/text";
|
||||
|
||||
import { FolderType, RoomSearchArea } from "@docspace/common/constants";
|
||||
import RoomsFilter from "@docspace/common/api/rooms/filter";
|
||||
import FilesFilter from "@docspace/common/api/files/filter";
|
||||
import { FolderType, RoomSearchArea } from "@docspace/shared/enums";
|
||||
import RoomsFilter from "@docspace/shared/api/rooms/filter";
|
||||
import FilesFilter from "@docspace/shared/api/files/filter";
|
||||
|
||||
import { getCategoryUrl, getCategoryType } from "SRC_DIR/helpers/utils";
|
||||
import { CategoryType } from "SRC_DIR/helpers/constants";
|
||||
|
@ -2,7 +2,6 @@ import React from "react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import {
|
||||
SharingPanel,
|
||||
UploadPanel,
|
||||
VersionHistoryPanel,
|
||||
ChangeOwnerPanel,
|
||||
@ -33,20 +32,20 @@ import {
|
||||
SettingsPluginDialog,
|
||||
PluginDialog,
|
||||
DeletePluginDialog,
|
||||
ShareFolderDialog,
|
||||
} from "../dialogs";
|
||||
import ConvertPasswordDialog from "../dialogs/ConvertPasswordDialog";
|
||||
import ArchiveDialog from "../dialogs/ArchiveDialog";
|
||||
import RestoreRoomDialog from "../dialogs/RestoreRoomDialog";
|
||||
import PreparationPortalDialog from "../dialogs/PreparationPortalDialog";
|
||||
import FilesSelector from "../FilesSelector";
|
||||
import { FilesSelectorFilterTypes } from "@docspace/common/constants";
|
||||
import { FilesSelectorFilterTypes } from "@docspace/shared/enums";
|
||||
import LeaveRoomDialog from "../dialogs/LeaveRoomDialog";
|
||||
import ChangeRoomOwnerPanel from "../panels/ChangeRoomOwnerPanel";
|
||||
|
||||
const Panels = (props) => {
|
||||
const {
|
||||
uploadPanelVisible,
|
||||
sharingPanelVisible,
|
||||
ownerPanelVisible,
|
||||
copyPanelVisible,
|
||||
moveToPanelVisible,
|
||||
@ -89,6 +88,7 @@ const Panels = (props) => {
|
||||
leaveRoomDialogVisible,
|
||||
changeRoomOwnerIsVisible,
|
||||
deletePluginDialogVisible,
|
||||
shareFolderDialogVisible,
|
||||
} = props;
|
||||
|
||||
const { t } = useTranslation(["Translations", "Common"]);
|
||||
@ -114,12 +114,6 @@ const Panels = (props) => {
|
||||
<PluginDialog isVisible={pluginDialogVisible} key={"plugin-dialog"} />
|
||||
),
|
||||
uploadPanelVisible && <UploadPanel key="upload-panel" />,
|
||||
sharingPanelVisible && (
|
||||
<SharingPanel
|
||||
key="sharing-panel"
|
||||
uploadPanelVisible={uploadPanelVisible}
|
||||
/>
|
||||
),
|
||||
ownerPanelVisible && <ChangeOwnerPanel key="change-owner-panel" />,
|
||||
(moveToPanelVisible ||
|
||||
copyPanelVisible ||
|
||||
@ -199,6 +193,7 @@ const Panels = (props) => {
|
||||
changeRoomOwnerIsVisible && (
|
||||
<ChangeRoomOwnerPanel key="change-room-owner" />
|
||||
),
|
||||
shareFolderDialogVisible && <ShareFolderDialog key="share-folder-dialog" />,
|
||||
];
|
||||
};
|
||||
|
||||
@ -213,7 +208,6 @@ export default inject(
|
||||
pluginStore,
|
||||
}) => {
|
||||
const {
|
||||
sharingPanelVisible,
|
||||
ownerPanelVisible,
|
||||
copyPanelVisible,
|
||||
moveToPanelVisible,
|
||||
@ -252,6 +246,7 @@ export default inject(
|
||||
backupToPublicRoomVisible,
|
||||
leaveRoomDialogVisible,
|
||||
changeRoomOwnerIsVisible,
|
||||
shareFolderDialogVisible,
|
||||
} = dialogsStore;
|
||||
|
||||
const { preparationPortalDialogVisible } = backup;
|
||||
@ -269,7 +264,6 @@ export default inject(
|
||||
|
||||
return {
|
||||
preparationPortalDialogVisible,
|
||||
sharingPanelVisible,
|
||||
uploadPanelVisible,
|
||||
ownerPanelVisible,
|
||||
copyPanelVisible,
|
||||
@ -312,6 +306,7 @@ export default inject(
|
||||
leaveRoomDialogVisible,
|
||||
changeRoomOwnerIsVisible,
|
||||
deletePluginDialogVisible,
|
||||
shareFolderDialogVisible,
|
||||
};
|
||||
}
|
||||
)(observer(Panels));
|
||||
|
@ -1,11 +1,11 @@
|
||||
import React from "react";
|
||||
|
||||
// @ts-ignore
|
||||
import { getFolder, getFolderInfo } from "@docspace/common/api/files";
|
||||
import { getFolder, getFolderInfo } from "@docspace/shared/api/files";
|
||||
// @ts-ignore
|
||||
import FilesFilter from "@docspace/common/api/files/filter";
|
||||
import FilesFilter from "@docspace/shared/api/files/filter";
|
||||
// @ts-ignore
|
||||
import { iconSize32 } from "@docspace/common/utils/image-helpers";
|
||||
import { iconSize32 } from "@docspace/shared/utils/image-helpers";
|
||||
|
||||
import { PAGE_COUNT, defaultBreadCrumb } from "../utils";
|
||||
|
||||
@ -20,10 +20,27 @@ import {
|
||||
FilesSelectorFilterTypes,
|
||||
FilterType,
|
||||
FolderType,
|
||||
} from "@docspace/common/constants";
|
||||
} from "@docspace/shared/enums";
|
||||
|
||||
import {
|
||||
getIconPathByFolderType,
|
||||
FolderTypeValueOf,
|
||||
} from "@docspace/shared/utils/common";
|
||||
|
||||
//@ts-ignore
|
||||
import { toastr } from "@docspace/shared/components/toast";
|
||||
|
||||
type Room = {
|
||||
id: number;
|
||||
title: string;
|
||||
roomType: number;
|
||||
filesCount: number;
|
||||
foldersCount: number;
|
||||
security: Security;
|
||||
parentId: number;
|
||||
rootFolderType: number;
|
||||
type: FolderTypeValueOf;
|
||||
};
|
||||
const DEFAULT_FILE_EXTS = "file";
|
||||
|
||||
export const convertFoldersToItems = (
|
||||
@ -31,7 +48,7 @@ export const convertFoldersToItems = (
|
||||
disabledItems: any[],
|
||||
filterParam?: string
|
||||
) => {
|
||||
const items = folders.map((room: any) => {
|
||||
const items = folders.map((room: Room) => {
|
||||
const {
|
||||
id,
|
||||
title,
|
||||
@ -41,18 +58,11 @@ export const convertFoldersToItems = (
|
||||
security,
|
||||
parentId,
|
||||
rootFolderType,
|
||||
}: {
|
||||
id: number;
|
||||
title: string;
|
||||
roomType: number;
|
||||
filesCount: number;
|
||||
foldersCount: number;
|
||||
security: Security;
|
||||
parentId: number;
|
||||
rootFolderType: number;
|
||||
type,
|
||||
} = room;
|
||||
|
||||
const icon = iconSize32.get("folder.svg");
|
||||
const folderIconPath = getIconPathByFolderType(type);
|
||||
const icon = iconSize32.get(folderIconPath);
|
||||
|
||||
return {
|
||||
id,
|
||||
|
@ -1,13 +1,13 @@
|
||||
import React from "react";
|
||||
|
||||
// @ts-ignore
|
||||
import { getRooms } from "@docspace/common/api/rooms";
|
||||
import { getRooms } from "@docspace/shared/api/rooms";
|
||||
// @ts-ignore
|
||||
import RoomsFilter from "@docspace/common/api/rooms/filter";
|
||||
import RoomsFilter from "@docspace/shared/api/rooms/filter";
|
||||
// @ts-ignore
|
||||
import { RoomsType } from "@docspace/common/constants";
|
||||
import { RoomsType } from "@docspace/shared/enums";
|
||||
// @ts-ignore
|
||||
import { iconSize32 } from "@docspace/common/utils/image-helpers";
|
||||
import { iconSize32 } from "@docspace/shared/utils/image-helpers";
|
||||
|
||||
import { PAGE_COUNT, defaultBreadCrumb } from "../utils";
|
||||
|
||||
@ -27,6 +27,9 @@ const getRoomLogo = (roomType: number) => {
|
||||
case RoomsType.PublicRoom:
|
||||
path = "public.svg";
|
||||
break;
|
||||
case RoomsType.FormRoom:
|
||||
path = "form.svg";
|
||||
break;
|
||||
}
|
||||
|
||||
return iconSize32.get(path);
|
||||
@ -92,8 +95,8 @@ const useRoomsHelper = ({
|
||||
const filterValue = search
|
||||
? search
|
||||
: search === null
|
||||
? ""
|
||||
: searchValue || "";
|
||||
? ""
|
||||
: searchValue || "";
|
||||
|
||||
const page = startIndex / PAGE_COUNT;
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
import React from "react";
|
||||
|
||||
import { FolderType } from "@docspace/common/constants";
|
||||
import { FolderType } from "@docspace/shared/enums";
|
||||
// @ts-ignore
|
||||
import { getFoldersTree } from "@docspace/common/api/files";
|
||||
import { getFoldersTree } from "@docspace/shared/api/files";
|
||||
|
||||
import CatalogFolderReactSvgUrl from "PUBLIC_DIR/images/catalog.folder.react.svg?url";
|
||||
import CatalogUserReactSvgUrl from "PUBLIC_DIR/images/catalog.user.react.svg?url";
|
||||
@ -10,7 +10,7 @@ import CatalogUserReactSvgUrl from "PUBLIC_DIR/images/catalog.user.react.svg?url
|
||||
import { useRootHelperProps, Item } from "../FilesSelector.types";
|
||||
|
||||
import { defaultBreadCrumb } from "../utils";
|
||||
import { getCatalogIconUrlByType } from "@docspace/common/utils/catalogIcon.helper";
|
||||
import { getCatalogIconUrlByType } from "@docspace/shared/utils/catalogIconHelper";
|
||||
|
||||
const useRootHelper = ({
|
||||
setBreadCrumbs,
|
||||
|
@ -1,9 +1,9 @@
|
||||
import i18n from "i18next";
|
||||
import { initReactI18next } from "react-i18next";
|
||||
import Backend from "@docspace/common/utils/i18next-http-backend";
|
||||
import Backend from "@docspace/shared/utils/i18next-http-backend";
|
||||
import { LANGUAGE } from "@docspace/shared/constants";
|
||||
import config from "PACKAGE_FILE";
|
||||
import { getLtrLanguageForEditor } from "@docspace/common/utils";
|
||||
import { getLtrLanguageForEditor } from "@docspace/shared/utils/common";
|
||||
import { getCookie } from "@docspace/shared/utils";
|
||||
import { loadLanguagePath } from "SRC_DIR/helpers/utils";
|
||||
const newInstance = i18n.createInstance();
|
||||
|
@ -4,8 +4,8 @@ import { useTranslation } from "react-i18next";
|
||||
|
||||
// @ts-ignore
|
||||
import Loaders from "@docspace/common/components/Loaders";
|
||||
import { FolderType, RoomsType } from "@docspace/common/constants";
|
||||
import { DeviceType } from "@docspace/common/constants";
|
||||
import { FolderType, RoomsType } from "@docspace/shared/enums";
|
||||
import { DeviceType } from "@docspace/shared/enums";
|
||||
|
||||
import { Selector } from "@docspace/shared/components/selector";
|
||||
import { Aside } from "@docspace/shared/components/aside";
|
||||
@ -13,6 +13,8 @@ import { Backdrop } from "@docspace/shared/components/backdrop";
|
||||
import { Portal } from "@docspace/shared/components/portal";
|
||||
import { toastr } from "@docspace/shared/components/toast";
|
||||
|
||||
import { RowLoader, SearchLoader } from "@docspace/shared/skeletons/selector";
|
||||
|
||||
import EmptyScreenFilterAltSvgUrl from "PUBLIC_DIR/images/empty_screen_filter_alt.svg?url";
|
||||
import EmptyScreenFilterAltDarkSvgUrl from "PUBLIC_DIR/images/empty_screen_filter_alt_dark.svg?url";
|
||||
import EmptyScreenAltSvgUrl from "PUBLIC_DIR/images/empty_screen_alt.svg?url";
|
||||
@ -565,13 +567,13 @@ const FilesSelector = ({
|
||||
isBreadCrumbsLoading={showBreadCrumbsLoader}
|
||||
withSearch={withSearch && !isRoot && items ? items.length > 0 : !isRoot && isFirstLoad}
|
||||
rowLoader={
|
||||
<Loaders.SelectorRowLoader
|
||||
<RowLoader
|
||||
isMultiSelect={false}
|
||||
isUser={isRoot}
|
||||
isContainer={showLoader}
|
||||
/>
|
||||
}
|
||||
searchLoader={<Loaders.SelectorSearchLoader />}
|
||||
searchLoader={<SearchLoader />}
|
||||
breadCrumbsLoader={<Loaders.SelectorBreadCrumbsLoader />}
|
||||
alwaysShowFooter={true}
|
||||
isNextPageLoading={isNextPageLoading}
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { FilesSelectorFilterTypes } from "@docspace/common/constants";
|
||||
import { FilesSelectorFilterTypes } from "@docspace/shared/enums";
|
||||
import { BreadCrumb, Security } from "./FilesSelector.types";
|
||||
|
||||
export const PAGE_COUNT = 100;
|
||||
|
@ -7,7 +7,7 @@ import { ChangeUserTypeDialog } from "../dialogs";
|
||||
import { toastr } from "@docspace/shared/components/toast";
|
||||
import { Link } from "@docspace/shared/components/link";
|
||||
import { Text } from "@docspace/shared/components/text";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import { combineUrl } from "@docspace/shared/utils/combineUrl";
|
||||
|
||||
const ChangeUserTypeEvent = ({
|
||||
setVisible,
|
||||
|
@ -4,7 +4,7 @@ import { useTranslation } from "react-i18next";
|
||||
|
||||
import { toastr } from "@docspace/shared/components/toast";
|
||||
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import { combineUrl } from "@docspace/shared/utils/combineUrl";
|
||||
|
||||
import config from "PACKAGE_FILE";
|
||||
|
||||
|
@ -48,8 +48,8 @@ const CreateRoomEvent = ({
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
fetchTagsAction;
|
||||
}, []);
|
||||
fetchTagsAction();
|
||||
}, [fetchTagsAction]);
|
||||
|
||||
useEffect(() => {
|
||||
setCreateRoomDialogVisible(true);
|
||||
|
@ -2,9 +2,9 @@ import React, { useState, useEffect, useCallback } from "react";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { EditRoomDialog } from "../dialogs";
|
||||
import { Encoder } from "@docspace/common/utils/encoder";
|
||||
import api from "@docspace/common/api";
|
||||
import { getRoomInfo } from "@docspace/common/api/rooms";
|
||||
import { Encoder } from "@docspace/shared/utils/encoder";
|
||||
import api from "@docspace/shared/api";
|
||||
import { getRoomInfo } from "@docspace/shared/api/rooms";
|
||||
import { toastr } from "@docspace/shared/components/toast";
|
||||
|
||||
const EditRoomEvent = ({
|
||||
|
@ -2,8 +2,8 @@ import { useState, useEffect, useCallback, useRef, memo } from "react";
|
||||
|
||||
import { inject, observer } from "mobx-react";
|
||||
|
||||
import { FileAction } from "@docspace/common/constants";
|
||||
import { Events } from "@docspace/common/constants";
|
||||
import { FileAction } from "@docspace/shared/enums";
|
||||
import { Events } from "@docspace/shared/enums";
|
||||
|
||||
import CreateEvent from "./CreateEvent";
|
||||
import RenameEvent from "./RenameEvent";
|
||||
|
@ -5,7 +5,7 @@ import { withTranslation } from "react-i18next";
|
||||
|
||||
import { ADS_TIMEOUT } from "@docspace/client/src/helpers/filesConstants";
|
||||
|
||||
import { getConvertedSize } from "@docspace/common/utils";
|
||||
import { getConvertedSize } from "@docspace/shared/utils/common";
|
||||
|
||||
import { getBannerAttribute } from "@docspace/shared/utils";
|
||||
import { SnackBar } from "@docspace/shared/components/snackbar";
|
||||
|
@ -1,6 +1,6 @@
|
||||
import i18n from "i18next";
|
||||
import { initReactI18next } from "react-i18next";
|
||||
import Backend from "@docspace/common/utils/i18next-http-backend";
|
||||
import Backend from "@docspace/shared/utils/i18next-http-backend";
|
||||
import { LANGUAGE } from "@docspace/shared/constants";
|
||||
import config from "PACKAGE_FILE";
|
||||
import { getCookie } from "@docspace/shared/utils";
|
||||
|
@ -19,7 +19,7 @@ import { inject, observer } from "mobx-react";
|
||||
import i18n from "./i18n";
|
||||
import PreparationPortalDialog from "../dialogs/PreparationPortalDialog";
|
||||
import { Base } from "@docspace/shared/themes";
|
||||
import { DeviceType } from "@docspace/common/constants";
|
||||
import { DeviceType } from "@docspace/shared/enums";
|
||||
|
||||
const StyledContainer = styled.header`
|
||||
height: 48px;
|
||||
|
@ -8,11 +8,11 @@ import { isMobileOnly, isMobile } from "react-device-detect";
|
||||
import { useLocation } from "react-router-dom";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { isDesktop, tablet, mobile } from "@docspace/shared/utils";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import { combineUrl } from "@docspace/shared/utils/combineUrl";
|
||||
import { NoUserSelect } from "@docspace/shared/utils";
|
||||
import HeaderCatalogBurger from "./header-catalog-burger";
|
||||
import { Base } from "@docspace/shared/themes";
|
||||
import { getLogoFromPath } from "@docspace/common/utils";
|
||||
import { getLogoFromPath } from "@docspace/shared/utils";
|
||||
|
||||
const Header = styled.header`
|
||||
display: flex;
|
||||
|
@ -4,7 +4,7 @@ import PropTypes from "prop-types";
|
||||
import styled from "styled-components";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { NoUserSelect } from "@docspace/shared/utils";
|
||||
import { getLogoFromPath } from "@docspace/common/utils";
|
||||
import { getLogoFromPath } from "@docspace/shared/utils";
|
||||
const LogoItem = styled.div`
|
||||
display: flex;
|
||||
min-width: 48px;
|
||||
|
@ -6,7 +6,7 @@ import { Avatar, AvatarSize } from "@docspace/shared/components/avatar";
|
||||
import { DropDownItem } from "@docspace/shared/components/drop-down-item";
|
||||
import { Link } from "@docspace/shared/components/link";
|
||||
import ProfileMenu from "./profile-menu";
|
||||
import api from "@docspace/common/api";
|
||||
import api from "@docspace/shared/api";
|
||||
import DefaultUserPhoto from "PUBLIC_DIR/images/default_user_photo_size_82-82.png";
|
||||
import { ToggleButton } from "@docspace/shared/components/toggle-button";
|
||||
import { Button } from "@docspace/shared/components/button";
|
||||
|
@ -2,7 +2,7 @@
|
||||
import CatalogFolderReactSvgUrl from "PUBLIC_DIR/images/catalog.folder.react.svg?url";
|
||||
import React from "react";
|
||||
import { withTranslation } from "react-i18next";
|
||||
import Filter from "@docspace/common/api/people/filter";
|
||||
import Filter from "@docspace/shared/api/people/filter";
|
||||
import Loaders from "@docspace/common/components/Loaders";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { getSelectedGroup } from "../../../helpers/people-helpers";
|
||||
@ -10,7 +10,7 @@ import { useNavigate } from "react-router-dom";
|
||||
import { isMobile } from "@docspace/shared/utils";
|
||||
import { isMobileOnly } from "react-device-detect";
|
||||
import config from "PACKAGE_FILE";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import { combineUrl } from "@docspace/shared/utils/combineUrl";
|
||||
import { ArticleItem } from "@docspace/shared/components/article-item";
|
||||
import withLoader from "../../../HOCs/withLoader";
|
||||
|
||||
|
@ -14,7 +14,7 @@ import { toastr } from "@docspace/shared/components/toast";
|
||||
import Loaders from "@docspace/common/components/Loaders";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import config from "PACKAGE_FILE";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import { combineUrl } from "@docspace/shared/utils/combineUrl";
|
||||
import { isMobile } from "react-device-detect";
|
||||
import {
|
||||
isMobile as isMobileUtils,
|
||||
|
@ -1,40 +0,0 @@
|
||||
import i18n from "i18next";
|
||||
import { initReactI18next } from "react-i18next";
|
||||
import Backend from "@docspace/common/utils/i18next-http-backend";
|
||||
import { LANGUAGE } from "@docspace/shared/constants";
|
||||
import config from "PACKAGE_FILE";
|
||||
import { getCookie } from "@docspace/shared/utils";
|
||||
import { loadLanguagePath } from "SRC_DIR/helpers/utils";
|
||||
const newInstance = i18n.createInstance();
|
||||
|
||||
newInstance
|
||||
.use(Backend)
|
||||
.use(initReactI18next)
|
||||
.init({
|
||||
lng: getCookie(LANGUAGE) || "en",
|
||||
|
||||
fallbackLng: "en",
|
||||
load: "currentOnly",
|
||||
//debug: true,
|
||||
|
||||
interpolation: {
|
||||
escapeValue: false, // not needed for react as it escapes by default
|
||||
format: function (value, format) {
|
||||
if (format === "lowercase") return value.toLowerCase();
|
||||
return value;
|
||||
},
|
||||
},
|
||||
|
||||
backend: {
|
||||
loadPath: loadLanguagePath(config.homepage),
|
||||
},
|
||||
|
||||
ns: ["PeopleSelector", "Common", "PeopleTranslations"],
|
||||
defaultNS: "PeopleSelector",
|
||||
|
||||
react: {
|
||||
useSuspense: false,
|
||||
},
|
||||
});
|
||||
|
||||
export default newInstance;
|
@ -1,286 +0,0 @@
|
||||
import i18n from "./i18n";
|
||||
import PropTypes from "prop-types";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import React, { useState, useEffect } from "react";
|
||||
import { I18nextProvider, withTranslation } from "react-i18next";
|
||||
|
||||
import { Selector } from "@docspace/shared/components/selector";
|
||||
|
||||
import { getUserRole } from "@docspace/common/utils";
|
||||
import Filter from "@docspace/common/api/people/filter";
|
||||
import { getUserList } from "@docspace/common/api/people";
|
||||
import Loaders from "@docspace/common/components/Loaders";
|
||||
import { EmployeeStatus } from "@docspace/common/constants";
|
||||
import { LOADER_TIMEOUT } from "@docspace/common/constants";
|
||||
|
||||
import useLoadingWithTimeout from "SRC_DIR/Hooks/useLoadingWithTimeout";
|
||||
|
||||
import DefaultUserPhoto from "PUBLIC_DIR/images/default_user_photo_size_82-82.png";
|
||||
|
||||
import EmptyScreenPersonsSvgUrl from "PUBLIC_DIR/images/empty_screen_persons.svg?url";
|
||||
import CatalogAccountsReactSvgUrl from "PUBLIC_DIR/images/catalog.accounts.react.svg?url";
|
||||
import EmptyScreenPersonsSvgDarkUrl from "PUBLIC_DIR/images/empty_screen_persons_dark.svg?url";
|
||||
|
||||
const PeopleSelector = ({
|
||||
acceptButtonLabel,
|
||||
accessRights,
|
||||
cancelButtonLabel,
|
||||
className,
|
||||
emptyScreenDescription,
|
||||
emptyScreenHeader,
|
||||
headerLabel,
|
||||
id,
|
||||
isMultiSelect,
|
||||
items,
|
||||
onAccept,
|
||||
onAccessRightsChange,
|
||||
onBackClick,
|
||||
onCancel,
|
||||
onSelect,
|
||||
onSelectAll,
|
||||
searchEmptyScreenDescription,
|
||||
searchEmptyScreenHeader,
|
||||
searchPlaceholder,
|
||||
selectAllIcon,
|
||||
selectAllLabel,
|
||||
selectedAccessRight,
|
||||
selectedItems,
|
||||
style,
|
||||
t,
|
||||
withAccessRights,
|
||||
withCancelButton,
|
||||
withSelectAll,
|
||||
filter,
|
||||
excludeItems,
|
||||
currentUserId,
|
||||
theme,
|
||||
withOutCurrentAuthorizedUser,
|
||||
withAbilityCreateRoomUsers,
|
||||
withFooterCheckbox,
|
||||
footerCheckboxLabel,
|
||||
isChecked,
|
||||
setIsChecked,
|
||||
filterUserId,
|
||||
}) => {
|
||||
const [itemsList, setItemsList] = useState(items);
|
||||
const [searchValue, setSearchValue] = useState("");
|
||||
const [total, setTotal] = useState(0);
|
||||
const [hasNextPage, setHasNextPage] = useState(true);
|
||||
const [isNextPageLoading, setIsNextPageLoading] = useState(false);
|
||||
const [isLoading, setIsLoading] = useLoadingWithTimeout(
|
||||
LOADER_TIMEOUT,
|
||||
false
|
||||
);
|
||||
|
||||
useEffect(() => {
|
||||
loadNextPage(0);
|
||||
}, []);
|
||||
|
||||
const toListItem = (item) => {
|
||||
const {
|
||||
id,
|
||||
email,
|
||||
avatar,
|
||||
icon,
|
||||
displayName,
|
||||
hasAvatar,
|
||||
isOwner,
|
||||
isAdmin,
|
||||
isVisitor,
|
||||
isCollaborator,
|
||||
} = item;
|
||||
|
||||
const role = getUserRole(item);
|
||||
|
||||
const userAvatar = hasAvatar ? avatar : DefaultUserPhoto;
|
||||
|
||||
return {
|
||||
id,
|
||||
email,
|
||||
avatar: userAvatar,
|
||||
icon,
|
||||
label: displayName || email,
|
||||
role,
|
||||
isOwner,
|
||||
isAdmin,
|
||||
isVisitor,
|
||||
isCollaborator,
|
||||
hasAvatar,
|
||||
};
|
||||
};
|
||||
|
||||
const moveCurrentUserToTopOfList = (listUser) => {
|
||||
const currentUserIndex = listUser.findIndex(
|
||||
(user) => user.id === currentUserId
|
||||
);
|
||||
|
||||
// return if the current user is already at the top of the list or not found
|
||||
if (currentUserIndex < 1) return listUser;
|
||||
|
||||
const [currentUser] = listUser.splice(currentUserIndex, 1);
|
||||
|
||||
listUser.splice(0, 0, currentUser);
|
||||
|
||||
return listUser;
|
||||
};
|
||||
|
||||
const removeCurrentUserFromList = (listUser) => {
|
||||
if (filterUserId) {
|
||||
return listUser.filter((user) => user.id !== filterUserId);
|
||||
}
|
||||
return listUser.filter((user) => user.id !== currentUserId);
|
||||
};
|
||||
|
||||
const loadNextPage = (startIndex, search = searchValue) => {
|
||||
const pageCount = 100;
|
||||
|
||||
setIsNextPageLoading(true);
|
||||
|
||||
if (startIndex === 0) {
|
||||
setIsLoading(true);
|
||||
}
|
||||
|
||||
const currentFilter =
|
||||
typeof filter === "function" ? filter() : filter ?? Filter.getDefault();
|
||||
|
||||
currentFilter.page = startIndex / pageCount;
|
||||
currentFilter.pageCount = pageCount;
|
||||
|
||||
if (!!search.length) {
|
||||
currentFilter.search = search;
|
||||
}
|
||||
|
||||
getUserList(currentFilter)
|
||||
.then((response) => {
|
||||
let newItems = startIndex ? itemsList : [];
|
||||
let totalDifferent = startIndex ? response.total - total : 0;
|
||||
|
||||
const items = response.items
|
||||
.filter((item) => {
|
||||
const excludeUser =
|
||||
withAbilityCreateRoomUsers &&
|
||||
((!item.isAdmin && !item.isOwner && !item.isRoomAdmin) ||
|
||||
item.status === EmployeeStatus.Disabled);
|
||||
|
||||
if (excludeItems.includes(item.id) || excludeUser) {
|
||||
totalDifferent++;
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
})
|
||||
.map((item) => toListItem(item));
|
||||
|
||||
const tempItems = [...newItems, ...items];
|
||||
|
||||
newItems = withOutCurrentAuthorizedUser
|
||||
? removeCurrentUserFromList(tempItems)
|
||||
: moveCurrentUserToTopOfList(tempItems);
|
||||
|
||||
const newTotal = withOutCurrentAuthorizedUser
|
||||
? response.total - totalDifferent - 1
|
||||
: response.total - totalDifferent;
|
||||
|
||||
setHasNextPage(newItems.length < newTotal);
|
||||
setItemsList(newItems);
|
||||
setTotal(newTotal);
|
||||
|
||||
setIsNextPageLoading(false);
|
||||
setIsLoading(false);
|
||||
})
|
||||
.catch((error) => console.log(error));
|
||||
};
|
||||
|
||||
const onSearch = (value) => {
|
||||
setSearchValue(value);
|
||||
loadNextPage(0, value);
|
||||
};
|
||||
|
||||
const onClearSearch = () => {
|
||||
setSearchValue("");
|
||||
loadNextPage(0, "");
|
||||
};
|
||||
|
||||
const emptyScreenImage = theme.isBase
|
||||
? EmptyScreenPersonsSvgUrl
|
||||
: EmptyScreenPersonsSvgDarkUrl;
|
||||
|
||||
return (
|
||||
<Selector
|
||||
id={id}
|
||||
className={className}
|
||||
style={style}
|
||||
headerLabel={headerLabel || t("ListAccounts")}
|
||||
onBackClick={onBackClick}
|
||||
searchPlaceholder={searchPlaceholder || t("Common:Search")}
|
||||
searchValue={searchValue}
|
||||
onSearch={onSearch}
|
||||
onClearSearch={onClearSearch}
|
||||
items={itemsList}
|
||||
isMultiSelect={isMultiSelect}
|
||||
selectedItems={selectedItems}
|
||||
acceptButtonLabel={acceptButtonLabel || t("Common:SelectAction")}
|
||||
onAccept={onAccept}
|
||||
withSelectAll={withSelectAll}
|
||||
selectAllLabel={selectAllLabel || t("AllAccounts")}
|
||||
selectAllIcon={selectAllIcon}
|
||||
withAccessRights={withAccessRights}
|
||||
accessRights={accessRights}
|
||||
selectedAccessRight={selectedAccessRight}
|
||||
withCancelButton={withCancelButton}
|
||||
cancelButtonLabel={cancelButtonLabel || t("Common:CancelButton")}
|
||||
onCancel={onCancel}
|
||||
emptyScreenImage={emptyScreenImage}
|
||||
emptyScreenHeader={emptyScreenHeader || t("EmptyHeader")}
|
||||
emptyScreenDescription={emptyScreenDescription || t("EmptyDescription")}
|
||||
searchEmptyScreenImage={emptyScreenImage}
|
||||
searchEmptyScreenHeader={
|
||||
searchEmptyScreenHeader || t("People:NotFoundUsers")
|
||||
}
|
||||
searchEmptyScreenDescription={
|
||||
searchEmptyScreenDescription || t("People:NotFoundUsersDescription")
|
||||
}
|
||||
hasNextPage={hasNextPage}
|
||||
isNextPageLoading={isNextPageLoading}
|
||||
loadNextPage={loadNextPage}
|
||||
totalItems={total}
|
||||
isLoading={isLoading}
|
||||
withFooterCheckbox={withFooterCheckbox}
|
||||
footerCheckboxLabel={footerCheckboxLabel}
|
||||
isChecked={isChecked}
|
||||
setIsChecked={setIsChecked}
|
||||
searchLoader={<Loaders.SelectorSearchLoader />}
|
||||
isSearchLoading={isLoading}
|
||||
rowLoader={<Loaders.SelectorRowLoader isUser isContainer={isLoading} />}
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
||||
PeopleSelector.propTypes = { excludeItems: PropTypes.array };
|
||||
|
||||
PeopleSelector.defaultProps = {
|
||||
excludeItems: [],
|
||||
selectAllIcon: CatalogAccountsReactSvgUrl,
|
||||
};
|
||||
|
||||
const ExtendedPeopleSelector = inject(({ auth }) => {
|
||||
return {
|
||||
theme: auth.settingsStore.theme,
|
||||
currentUserId: auth.userStore.user.id,
|
||||
};
|
||||
})(
|
||||
observer(
|
||||
withTranslation([
|
||||
"PeopleSelector",
|
||||
"PeopleTranslations",
|
||||
"People",
|
||||
"Common",
|
||||
])(PeopleSelector)
|
||||
)
|
||||
);
|
||||
|
||||
export default (props) => (
|
||||
<I18nextProvider i18n={i18n}>
|
||||
<ExtendedPeopleSelector {...props} />
|
||||
</I18nextProvider>
|
||||
);
|
@ -1,62 +0,0 @@
|
||||
import React from "react";
|
||||
import PropTypes from "prop-types";
|
||||
import { Avatar } from "@docspace/shared/components/avatar";
|
||||
import { Text } from "@docspace/shared/components/text";
|
||||
import StyledUserTooltip from "./StyledUserTooltip";
|
||||
|
||||
const UserTooltip = ({ avatarUrl, label, email, position, theme }) => (
|
||||
<StyledUserTooltip theme={theme}>
|
||||
<div className="block-avatar">
|
||||
<Avatar
|
||||
theme={theme}
|
||||
className="user-avatar"
|
||||
size="min"
|
||||
role="user"
|
||||
source={avatarUrl}
|
||||
userName=""
|
||||
editing={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="block-info">
|
||||
<Text
|
||||
theme={theme}
|
||||
isBold={true}
|
||||
fontSize="13px"
|
||||
fontWeight={600}
|
||||
truncate={true}
|
||||
title={label}
|
||||
>
|
||||
{label}
|
||||
</Text>
|
||||
<Text
|
||||
theme={theme}
|
||||
color={theme.peopleSelector.textColor}
|
||||
fontSize="13px"
|
||||
className="email-text"
|
||||
truncate={true}
|
||||
title={email}
|
||||
>
|
||||
{email}
|
||||
</Text>
|
||||
<Text
|
||||
theme={theme}
|
||||
fontSize="13px"
|
||||
fontWeight={600}
|
||||
truncate={true}
|
||||
title={position}
|
||||
>
|
||||
{position}
|
||||
</Text>
|
||||
</div>
|
||||
</StyledUserTooltip>
|
||||
);
|
||||
|
||||
UserTooltip.propTypes = {
|
||||
avatarUrl: PropTypes.string,
|
||||
label: PropTypes.string,
|
||||
email: PropTypes.string,
|
||||
position: PropTypes.string,
|
||||
};
|
||||
|
||||
export default UserTooltip;
|
@ -4,15 +4,16 @@ import LinkReactSvgUrl from "PUBLIC_DIR/images/link.react.svg?url";
|
||||
import LockedReactSvgUrl from "PUBLIC_DIR/images/locked.react.svg?url";
|
||||
import FileActionsFavoriteReactSvgUrl from "PUBLIC_DIR/images/file.actions.favorite.react.svg?url";
|
||||
import FavoriteReactSvgUrl from "PUBLIC_DIR/images/favorite.react.svg?url";
|
||||
|
||||
import React from "react";
|
||||
import styled from "styled-components";
|
||||
|
||||
import { isTablet, commonIconsStyles } from "@docspace/shared/utils";
|
||||
import { isTablet, isMobile, commonIconsStyles } from "@docspace/shared/utils";
|
||||
import {
|
||||
FileStatus,
|
||||
RoomsType,
|
||||
ShareAccessRights,
|
||||
} from "@docspace/common/constants";
|
||||
} from "@docspace/shared/enums";
|
||||
|
||||
import { ColorTheme, ThemeId } from "@docspace/shared/components/color-theme";
|
||||
|
||||
@ -30,10 +31,12 @@ const QuickButtons = (props) => {
|
||||
viewAs,
|
||||
folderCategory,
|
||||
isPublicRoom,
|
||||
onClickShare,
|
||||
isPersonalRoom,
|
||||
isArchiveFolder,
|
||||
} = props;
|
||||
|
||||
const { id, locked, fileStatus, title, fileExst } = item;
|
||||
const { id, locked, shared, fileStatus, title, fileExst } = item;
|
||||
|
||||
const isFavorite =
|
||||
(fileStatus & FileStatus.IsFavorite) === FileStatus.IsFavorite;
|
||||
@ -54,6 +57,10 @@ const QuickButtons = (props) => {
|
||||
? theme.filesQuickButtons.sharedColor
|
||||
: theme.filesQuickButtons.color;
|
||||
|
||||
const colorShare = shared
|
||||
? theme.filesQuickButtons.sharedColor
|
||||
: theme.filesQuickButtons.color;
|
||||
|
||||
const tabletViewQuickButton = isTablet();
|
||||
|
||||
const sizeQuickButton = isTile || tabletViewQuickButton ? "medium" : "small";
|
||||
@ -67,6 +74,8 @@ const QuickButtons = (props) => {
|
||||
const isAvailableDownloadFile =
|
||||
isPublicRoom && item.security.Download && viewAs === "tile";
|
||||
|
||||
const isAvailableShareFile = isPersonalRoom && item.canShare;
|
||||
|
||||
const isPublicRoomType =
|
||||
item.roomType === RoomsType.PublicRoom ||
|
||||
item.roomType === RoomsType.CustomRoom;
|
||||
@ -82,6 +91,11 @@ const QuickButtons = (props) => {
|
||||
!isArchiveFolder &&
|
||||
!isTile;
|
||||
|
||||
const onShare = () => {
|
||||
if (isMobile()) return;
|
||||
onClickShare();
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="badges additional-badges badges__quickButtons">
|
||||
{isAvailableLockFile && (
|
||||
@ -125,6 +139,19 @@ const QuickButtons = (props) => {
|
||||
title={t("Files:CopyGeneralLink")}
|
||||
/>
|
||||
)}
|
||||
{isAvailableShareFile && (
|
||||
<ColorTheme
|
||||
themeId={ThemeId.IconButton}
|
||||
iconName={LinkReactSvgUrl}
|
||||
className="badge copy-link icons-group"
|
||||
size={sizeQuickButton}
|
||||
onClick={onShare}
|
||||
color={colorShare}
|
||||
isDisabled={isDisabled}
|
||||
hoverColor={theme.filesQuickButtons.sharedColor}
|
||||
title={t("Files:CopyGeneralLink")}
|
||||
/>
|
||||
)}
|
||||
{/* {fileExst && !isTrashFolder && displayBadges && (
|
||||
<ColorTheme
|
||||
themeId={ThemeId.IconButton}
|
||||
|
54
packages/client/src/components/Section/index.tsx
Normal file
54
packages/client/src/components/Section/index.tsx
Normal file
@ -0,0 +1,54 @@
|
||||
import { inject, observer } from "mobx-react";
|
||||
|
||||
import Section, { SectionProps } from "@docspace/shared/components/section";
|
||||
|
||||
const SectionWrapper = ({
|
||||
children,
|
||||
|
||||
...rest
|
||||
}: SectionProps) => {
|
||||
return <Section {...rest}>{children}</Section>;
|
||||
};
|
||||
|
||||
export default inject(
|
||||
({ auth, dialogsStore }: { auth: any; dialogsStore: any }) => {
|
||||
const { settingsStore } = auth;
|
||||
const {
|
||||
isDesktopClient: isDesktop,
|
||||
currentDeviceType,
|
||||
isHeaderVisible,
|
||||
isTabletView,
|
||||
maintenanceExist,
|
||||
snackbarExist,
|
||||
showText,
|
||||
} = settingsStore;
|
||||
|
||||
const { isVisible, isMobileHidden, setIsVisible, getCanDisplay } =
|
||||
auth.infoPanelStore;
|
||||
|
||||
const { createRoomDialogVisible, invitePanelOptions } = dialogsStore;
|
||||
|
||||
const canDisplay = getCanDisplay();
|
||||
|
||||
const anotherDialogOpen =
|
||||
createRoomDialogVisible || invitePanelOptions.visible;
|
||||
|
||||
const { isScrollLocked: isInfoPanelScrollLocked } = auth.infoPanelStore;
|
||||
|
||||
return {
|
||||
isDesktop,
|
||||
currentDeviceType,
|
||||
isInfoPanelVisible: isVisible,
|
||||
isMobileHidden,
|
||||
setIsInfoPanelVisible: setIsVisible,
|
||||
canDisplay,
|
||||
anotherDialogOpen,
|
||||
isHeaderVisible,
|
||||
isTabletView,
|
||||
maintenanceExist,
|
||||
snackbarExist,
|
||||
showText,
|
||||
isInfoPanelScrollLocked,
|
||||
};
|
||||
}
|
||||
)(observer(SectionWrapper));
|
@ -12,8 +12,8 @@ import {
|
||||
AvatarPreview,
|
||||
} from "@docspace/shared/components/image-editor";
|
||||
|
||||
import { loadAvatar, deleteAvatar } from "@docspace/common/api/people";
|
||||
import { dataUrlToFile } from "@docspace/common/utils/dataUrlToFile";
|
||||
import { loadAvatar, deleteAvatar } from "@docspace/shared/api/people";
|
||||
import { dataUrlToFile } from "@docspace/shared/utils/dataUrlToFile";
|
||||
|
||||
import DefaultUserAvatarMax from "PUBLIC_DIR/images/default_user_photo_size_200-200.png";
|
||||
|
||||
|
@ -10,7 +10,7 @@ import { toastr } from "@docspace/shared/components/toast";
|
||||
import { withTranslation } from "react-i18next";
|
||||
import ModalDialogContainer from "../ModalDialogContainer";
|
||||
|
||||
import { DeviceType } from "@docspace/common/constants";
|
||||
import { DeviceType } from "@docspace/shared/enums";
|
||||
import { isDesktop } from "@docspace/shared/utils";
|
||||
|
||||
const StyledModal = styled(ModalDialogContainer)`
|
||||
|
@ -9,9 +9,9 @@ import { toastr } from "@docspace/shared/components/toast";
|
||||
|
||||
import { withTranslation } from "react-i18next";
|
||||
import ModalDialogContainer from "../ModalDialogContainer";
|
||||
import { sendInstructionsToChangeEmail } from "@docspace/common/api/people";
|
||||
import { sendInstructionsToChangeEmail } from "@docspace/shared/api/people";
|
||||
|
||||
import { errorKeys } from "@docspace/shared/constants";
|
||||
import { ErrorKeys } from "@docspace/shared/enums";
|
||||
import { inject, observer } from "mobx-react";
|
||||
class ChangeEmailDialogComponent extends React.Component {
|
||||
constructor(props) {
|
||||
@ -99,27 +99,27 @@ class ChangeEmailDialogComponent extends React.Component {
|
||||
} else {
|
||||
const translatedErrors = emailErrors.map((errorKey) => {
|
||||
switch (errorKey) {
|
||||
case errorKeys.LocalDomain:
|
||||
case ErrorKeys.LocalDomain:
|
||||
return t("Common:LocalDomain");
|
||||
case errorKeys.IncorrectDomain:
|
||||
case ErrorKeys.IncorrectDomain:
|
||||
return t("Common:IncorrectDomain");
|
||||
case errorKeys.DomainIpAddress:
|
||||
case ErrorKeys.DomainIpAddress:
|
||||
return t("Common:DomainIpAddress");
|
||||
case errorKeys.PunycodeDomain:
|
||||
case ErrorKeys.PunycodeDomain:
|
||||
return t("Common:PunycodeDomain");
|
||||
case errorKeys.PunycodeLocalPart:
|
||||
case ErrorKeys.PunycodeLocalPart:
|
||||
return t("Common:PunycodeLocalPart");
|
||||
case errorKeys.IncorrectLocalPart:
|
||||
case ErrorKeys.IncorrectLocalPart:
|
||||
return t("Common:IncorrectLocalPart");
|
||||
case errorKeys.SpacesInLocalPart:
|
||||
case ErrorKeys.SpacesInLocalPart:
|
||||
return t("Common:SpacesInLocalPart");
|
||||
case errorKeys.MaxLengthExceeded:
|
||||
case ErrorKeys.MaxLengthExceeded:
|
||||
return t("Common:MaxLengthExceeded");
|
||||
case errorKeys.IncorrectEmail:
|
||||
case ErrorKeys.IncorrectEmail:
|
||||
return t("Common:IncorrectEmail");
|
||||
case errorKeys.ManyEmails:
|
||||
case ErrorKeys.ManyEmails:
|
||||
return t("Common:ManyEmails");
|
||||
case errorKeys.EmptyEmail:
|
||||
case ErrorKeys.EmptyEmail:
|
||||
return t("Common:EmptyEmail");
|
||||
default:
|
||||
throw new Error("Unknown translation key");
|
||||
|
@ -8,7 +8,7 @@ import { Link } from "@docspace/shared/components/link";
|
||||
import { Text } from "@docspace/shared/components/text";
|
||||
|
||||
import { withTranslation, Trans } from "react-i18next";
|
||||
import { sendInstructionsToChangePassword } from "@docspace/common/api/people";
|
||||
import { sendInstructionsToChangePassword } from "@docspace/shared/api/people";
|
||||
|
||||
class ChangePasswordDialogComponent extends React.Component {
|
||||
constructor() {
|
||||
|
@ -4,9 +4,9 @@ import { inject, observer } from "mobx-react";
|
||||
import { ReactSVG } from "react-svg";
|
||||
import { withTranslation } from "react-i18next";
|
||||
|
||||
import PeopleSelector from "SRC_DIR/components/PeopleSelector";
|
||||
import PeopleSelector from "@docspace/shared/selectors/People";
|
||||
|
||||
import Filter from "@docspace/common/api/people/filter";
|
||||
import Filter from "@docspace/shared/api/people/filter";
|
||||
|
||||
import { ModalDialog } from "@docspace/shared/components/modal-dialog";
|
||||
import { Avatar } from "@docspace/shared/components/avatar";
|
||||
@ -118,6 +118,7 @@ const ChangePortalOwnerDialog = ({
|
||||
onAccept={onAccept}
|
||||
onCancel={onBackClick}
|
||||
onBackClick={onBackClick}
|
||||
currentUserId={id}
|
||||
/>
|
||||
</ModalDialog.Container>
|
||||
)}
|
||||
|
@ -8,7 +8,7 @@ import { Text } from "@docspace/shared/components/text";
|
||||
import { ModalDialog } from "@docspace/shared/components/modal-dialog";
|
||||
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { getConvertedSize } from "@docspace/common/utils";
|
||||
import { getConvertedSize } from "@docspace/shared/utils/common";
|
||||
|
||||
const ModalDialogContainer = styled(ModalDialog)`
|
||||
.cannot-downgrade-plan {
|
||||
|
@ -7,11 +7,11 @@ import { Text } from "@docspace/shared/components/text";
|
||||
import { Link } from "@docspace/shared/components/link";
|
||||
import { toastr } from "@docspace/shared/components/toast";
|
||||
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import { combineUrl } from "@docspace/shared/utils/combineUrl";
|
||||
|
||||
import { withTranslation } from "react-i18next";
|
||||
|
||||
import { EmployeeStatus } from "@docspace/common/constants";
|
||||
import { EmployeeStatus } from "@docspace/shared/enums";
|
||||
import ModalDialogContainer from "../ModalDialogContainer";
|
||||
import { inject, observer } from "mobx-react";
|
||||
|
||||
|
@ -8,7 +8,7 @@ import { toastr } from "@docspace/shared/components/toast";
|
||||
|
||||
import { withTranslation, Trans } from "react-i18next";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { ConflictResolveType } from "@docspace/common/constants";
|
||||
import { ConflictResolveType } from "@docspace/shared/enums";
|
||||
|
||||
import styled from "styled-components";
|
||||
|
||||
|
@ -9,8 +9,8 @@ import { FieldContainer } from "@docspace/shared/components/field-container";
|
||||
|
||||
import { withTranslation } from "react-i18next";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { getOAuthToken } from "@docspace/common/utils";
|
||||
import { saveSettingsThirdParty } from "@docspace/common/api/files";
|
||||
import { getOAuthToken } from "@docspace/shared/utils/common";
|
||||
import { saveSettingsThirdParty } from "@docspace/shared/api/files";
|
||||
|
||||
const PureConnectDialogContainer = (props) => {
|
||||
const {
|
||||
|
@ -9,7 +9,7 @@ import { Checkbox } from "@docspace/shared/components/checkbox";
|
||||
import { withTranslation, Trans } from "react-i18next";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import Loaders from "@docspace/common/components/Loaders";
|
||||
import { FolderType } from "@docspace/common/constants";
|
||||
import { FolderType } from "@docspace/shared/enums";
|
||||
|
||||
const ConvertDialogComponent = (props) => {
|
||||
const {
|
||||
|
@ -11,7 +11,7 @@ import SimulatePassword from "../../SimulatePassword";
|
||||
import StyledComponent from "./StyledConvertPasswordDialog";
|
||||
import config from "PACKAGE_FILE";
|
||||
import { openDocEditor } from "@docspace/client/src/helpers/filesUtils";
|
||||
import combineUrl from "@docspace/common/utils/combineUrl";
|
||||
import { combineUrl } from "@docspace/shared/utils/combineUrl";
|
||||
|
||||
let tab, _isMounted;
|
||||
const ConvertPasswordDialogComponent = (props) => {
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { RoomsType } from "@docspace/common/constants";
|
||||
import { RoomsType } from "@docspace/shared/enums";
|
||||
|
||||
export const getRoomTypeTitleTranslation = (roomType = 1, t) => {
|
||||
switch (roomType) {
|
||||
@ -14,6 +14,8 @@ export const getRoomTypeTitleTranslation = (roomType = 1, t) => {
|
||||
return t("CreateEditRoomDialog:CustomRoomTitle");
|
||||
case RoomsType.PublicRoom:
|
||||
return t("Files:PublicRoom");
|
||||
case RoomsType.FormRoom:
|
||||
return t("CreateEditRoomDialog:FormRoomTitle");
|
||||
}
|
||||
};
|
||||
|
||||
@ -31,6 +33,8 @@ export const getRoomTypeDescriptionTranslation = (roomType = 1, t) => {
|
||||
return t("CreateEditRoomDialog:CustomRoomDescription");
|
||||
case RoomsType.PublicRoom:
|
||||
return t("CreateEditRoomDialog:PublicRoomDescription");
|
||||
case RoomsType.FormRoom:
|
||||
return t("CreateEditRoomDialog:FormRoomDescription");
|
||||
}
|
||||
};
|
||||
|
||||
@ -48,5 +52,7 @@ export const getRoomTypeDefaultTagTranslation = (roomType = 1, t) => {
|
||||
return t("Files:CustomRooms");
|
||||
case RoomsType.PublicRoom:
|
||||
return t("Files:PublicRoom");
|
||||
case RoomsType.FormRoom:
|
||||
return t("Files:FormRoom");
|
||||
}
|
||||
};
|
||||
|
@ -4,7 +4,7 @@ import styled from "styled-components";
|
||||
import RoomType from "../RoomType";
|
||||
|
||||
import { Base } from "@docspace/shared/themes";
|
||||
import { RoomsType } from "@docspace/common/constants";
|
||||
import { RoomsTypeValues } from "@docspace/shared/utils/common";
|
||||
|
||||
const StyledDropdownDesktop = styled.div`
|
||||
max-width: 100%;
|
||||
@ -42,7 +42,7 @@ const DropdownDesktop = ({ t, open, chooseRoomType }) => {
|
||||
return (
|
||||
<StyledDropdownDesktop className="dropdown-content-wrapper" isOpen={open}>
|
||||
<div className="dropdown-content">
|
||||
{Object.values(RoomsType).map((roomType) => (
|
||||
{Object.values(RoomsTypeValues).map((roomType) => (
|
||||
<RoomType
|
||||
id={roomType}
|
||||
t={t}
|
||||
|
@ -2,7 +2,7 @@ import React from "react";
|
||||
import styled from "styled-components";
|
||||
|
||||
import RoomType from "../RoomType";
|
||||
import { RoomsType } from "./../../../../../../../common/constants/index";
|
||||
import { RoomsTypeValues } from "@docspace/shared/utils/common";
|
||||
import { Backdrop } from "@docspace/shared/components/backdrop";
|
||||
|
||||
import { Base } from "@docspace/shared/themes";
|
||||
@ -31,7 +31,7 @@ const DropdownMobile = ({ t, open, onClose, chooseRoomType }) => {
|
||||
<>
|
||||
<Backdrop visible={open} onClick={onClose} zIndex={450} />
|
||||
<StyledDropdownMobile className="dropdown-mobile" isOpen={open}>
|
||||
{Object.values(RoomsType).map((roomType) => (
|
||||
{Object.values(RoomsTypeValues).map((roomType) => (
|
||||
<RoomType
|
||||
id={roomType}
|
||||
t={t}
|
||||
|
@ -6,7 +6,7 @@ import RoomType from "./RoomType";
|
||||
|
||||
import withLoader from "@docspace/client/src/HOCs/withLoader";
|
||||
import Loaders from "@docspace/common/components/Loaders";
|
||||
import { RoomsType } from "./../../../../../../common/constants/index";
|
||||
import { RoomsTypeValues } from "@docspace/shared/utils/common";
|
||||
|
||||
const StyledRoomTypeList = styled.div`
|
||||
width: 100%;
|
||||
@ -19,7 +19,7 @@ const StyledRoomTypeList = styled.div`
|
||||
const RoomTypeList = ({ t, setRoomType }) => {
|
||||
return (
|
||||
<StyledRoomTypeList>
|
||||
{Object.values(RoomsType).map((roomType) => (
|
||||
{Object.values(RoomsTypeValues).map((roomType) => (
|
||||
<RoomType
|
||||
id={roomType}
|
||||
t={t}
|
||||
|
@ -20,6 +20,9 @@ import { ImageEditor } from "@docspace/shared/components/image-editor";
|
||||
import PreviewTile from "@docspace/shared/components/image-editor/PreviewTile";
|
||||
import { Text } from "@docspace/shared/components/text";
|
||||
|
||||
import SystemFolders from "./SystemFolders";
|
||||
import { RoomsType } from "@docspace/shared/enums";
|
||||
|
||||
import ChangeRoomOwner from "./ChangeRoomOwner";
|
||||
|
||||
const StyledSetRoomParams = styled.div`
|
||||
@ -61,6 +64,8 @@ const SetRoomParams = ({
|
||||
}) => {
|
||||
const [previewIcon, setPreviewIcon] = React.useState(null);
|
||||
|
||||
const isFormRoom = roomParams.type === RoomsType.FormRoom;
|
||||
|
||||
const onChangeName = (e) => {
|
||||
setIsValidTitle(true);
|
||||
if (e.target.value.match(folderFormValidation)) {
|
||||
@ -141,6 +146,7 @@ const SetRoomParams = ({
|
||||
onChangeIsPrivate={onChangeIsPrivate}
|
||||
/>
|
||||
)} */}
|
||||
{isFormRoom && <SystemFolders t={t} />}
|
||||
|
||||
{isEdit && (
|
||||
<ChangeRoomOwner
|
||||
|
@ -0,0 +1,5 @@
|
||||
interface SystemFoldersProps {
|
||||
t: Function;
|
||||
}
|
||||
|
||||
export default SystemFoldersProps;
|
@ -0,0 +1,29 @@
|
||||
import styled from "styled-components";
|
||||
import { Text } from "@docspace/shared/components/text";
|
||||
import { ToggleButton } from "@docspace/shared/components/toggle-button";
|
||||
|
||||
export const SystemFoldersTitle = styled(Text)`
|
||||
font-weight: 600;
|
||||
line-height: 20px;
|
||||
`;
|
||||
|
||||
export const SystemFoldersDescription = styled(Text)`
|
||||
font-weight: 400;
|
||||
font-size: 12px;
|
||||
line-height: 16px;
|
||||
color: ${(props) =>
|
||||
props.theme.createEditRoomDialog.roomType.dropdownItem.descriptionText};
|
||||
`;
|
||||
|
||||
export const SystemFoldersHeader = styled.div`
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
|
||||
margin-bottom: 2px;
|
||||
`;
|
||||
|
||||
export const SystemFoldersToggleButton = styled(ToggleButton)`
|
||||
width: 30px;
|
||||
height: 16px;
|
||||
`;
|
@ -0,0 +1,28 @@
|
||||
import React from "react";
|
||||
|
||||
import {
|
||||
SystemFoldersTitle,
|
||||
SystemFoldersHeader,
|
||||
SystemFoldersDescription,
|
||||
SystemFoldersToggleButton,
|
||||
} from "./SystemFolders.styled";
|
||||
|
||||
import type SystemFoldersProps from "./SystemFolders.props";
|
||||
|
||||
function SystemFolders({ t }: SystemFoldersProps) {
|
||||
return (
|
||||
<section>
|
||||
<SystemFoldersHeader>
|
||||
<SystemFoldersTitle>
|
||||
{t("CreateEditRoomDialog:PublicRoomSystemFoldersTitle")}
|
||||
</SystemFoldersTitle>
|
||||
<SystemFoldersToggleButton isChecked isDisabled onChange={() => {}} />
|
||||
</SystemFoldersHeader>
|
||||
<SystemFoldersDescription>
|
||||
{t("CreateEditRoomDialog:PublicRoomSystemFoldersDescription")}
|
||||
</SystemFoldersDescription>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
|
||||
export default SystemFolders;
|
@ -0,0 +1 @@
|
||||
export { default } from "./SystemFolders";
|
@ -9,7 +9,7 @@ import ToggleParam from "../Params/ToggleParam";
|
||||
import ThirdPartyComboBox from "./ThirdPartyComboBox";
|
||||
|
||||
import FolderInput from "./FolderInput";
|
||||
import { getOAuthToken } from "@docspace/common/utils";
|
||||
import { getOAuthToken } from "@docspace/shared/utils/common";
|
||||
|
||||
const StyledThirdPartyStorage = styled(StyledParam)`
|
||||
flex-direction: column;
|
||||
|
@ -2,7 +2,7 @@ import { useState, useEffect } from "react";
|
||||
import styled from "styled-components";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { withTranslation } from "react-i18next";
|
||||
import PeopleSelector from "@docspace/client/src/components/PeopleSelector";
|
||||
import PeopleSelector from "@docspace/shared/selectors/People";
|
||||
import { toastr } from "@docspace/shared/components/toast";
|
||||
import { ModalDialog } from "@docspace/shared/components/modal-dialog";
|
||||
import { Backdrop } from "@docspace/shared/components/backdrop";
|
||||
@ -10,7 +10,7 @@ import { useNavigate } from "react-router-dom";
|
||||
|
||||
import Body from "./sub-components/Body";
|
||||
import Footer from "./sub-components/Footer";
|
||||
import api from "@docspace/common/api";
|
||||
import api from "@docspace/shared/api";
|
||||
const { Filter } = api;
|
||||
|
||||
const StyledModalDialog = styled(ModalDialog)`
|
||||
@ -177,23 +177,24 @@ const DataReassignmentDialog = ({
|
||||
visible={visible}
|
||||
onClose={onClosePeopleSelector}
|
||||
containerVisible={selectorVisible}
|
||||
withFooterBorder={true}
|
||||
withBodyScroll={true}
|
||||
withFooterBorder
|
||||
withBodyScroll
|
||||
>
|
||||
<Backdrop
|
||||
onClick={onClosePeopleSelector}
|
||||
visible={selectorVisible}
|
||||
isAside={true}
|
||||
isAside
|
||||
/>
|
||||
<ModalDialog.Container>
|
||||
<PeopleSelector
|
||||
acceptButtonLabel={t("Common:SelectAction")}
|
||||
excludeItems={[user.id]}
|
||||
currentUserId={user.id}
|
||||
onAccept={onAccept}
|
||||
onCancel={onClosePeopleSelector}
|
||||
onBackClick={onTogglePeopleSelector}
|
||||
withCancelButton={true}
|
||||
withAbilityCreateRoomUsers={true}
|
||||
withCancelButton
|
||||
withAbilityCreateRoomUsers
|
||||
/>
|
||||
</ModalDialog.Container>
|
||||
</StyledModalDialog>
|
||||
@ -206,8 +207,8 @@ const DataReassignmentDialog = ({
|
||||
visible={visible}
|
||||
onClose={onClose}
|
||||
containerVisible={selectorVisible}
|
||||
withFooterBorder={true}
|
||||
withBodyScroll={true}
|
||||
withFooterBorder
|
||||
withBodyScroll
|
||||
>
|
||||
<ModalDialog.Header>
|
||||
{t("DataReassignmentDialog:DataReassignment")}
|
||||
|
@ -10,7 +10,7 @@ import { StyledDeleteLinkDialog } from "./StyledDeleteLinkDialog";
|
||||
import { withTranslation } from "react-i18next";
|
||||
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { RoomsType } from "@docspace/common/constants";
|
||||
import { RoomsType } from "@docspace/shared/enums";
|
||||
|
||||
const DeleteLinkDialogComponent = (props) => {
|
||||
const {
|
||||
|
@ -5,7 +5,7 @@ import { ModalDialog } from "@docspace/shared/components/modal-dialog";
|
||||
import { Button } from "@docspace/shared/components/button";
|
||||
import { toastr } from "@docspace/shared/components/toast";
|
||||
|
||||
import { sendDeletePortalEmail } from "@docspace/common/api/portal";
|
||||
import { sendDeletePortalEmail } from "@docspace/shared/api/portal";
|
||||
|
||||
import ModalDialogContainer from "../ModalDialogContainer";
|
||||
import { ColorTheme, ThemeId } from "@docspace/shared/components/color-theme";
|
||||
|
@ -4,7 +4,7 @@ import { Button } from "@docspace/shared/components/button";
|
||||
import { toastr } from "@docspace/shared/components/toast";
|
||||
import { ModalDialog } from "@docspace/shared/components/modal-dialog";
|
||||
import { withTranslation } from "react-i18next";
|
||||
import api from "@docspace/common/api";
|
||||
import api from "@docspace/shared/api";
|
||||
|
||||
import ModalDialogContainer from "../ModalDialogContainer";
|
||||
import { inject, observer } from "mobx-react";
|
||||
|
@ -9,7 +9,7 @@ import { ModalDialog } from "@docspace/shared/components/modal-dialog";
|
||||
import { Link } from "@docspace/shared/components/link";
|
||||
import { Trans, withTranslation } from "react-i18next";
|
||||
import ModalDialogContainer from "../ModalDialogContainer";
|
||||
import { sendInstructionsToDelete } from "@docspace/common/api/people";
|
||||
import { sendInstructionsToDelete } from "@docspace/shared/api/people";
|
||||
|
||||
class DeleteSelfProfileDialogComponent extends React.Component {
|
||||
constructor(props) {
|
||||
|
@ -7,7 +7,7 @@ import { withTranslation } from "react-i18next";
|
||||
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { useNavigate, useLocation } from "react-router-dom";
|
||||
import FilesFilter from "@docspace/common/api/files/filter";
|
||||
import FilesFilter from "@docspace/shared/api/files/filter";
|
||||
|
||||
const DeleteThirdPartyDialog = (props) => {
|
||||
const {
|
||||
|
@ -7,7 +7,7 @@ import { ModalDialog } from "@docspace/shared/components/modal-dialog";
|
||||
import { Button } from "@docspace/shared/components/button";
|
||||
import { Text } from "@docspace/shared/components/text";
|
||||
|
||||
import { getDaysRemaining } from "@docspace/common/utils";
|
||||
import { getDaysRemaining } from "@docspace/shared/utils/common";
|
||||
|
||||
const InviteUsersWarningDialog = (props) => {
|
||||
const {
|
||||
|
@ -1,6 +1,6 @@
|
||||
import i18n from "i18next";
|
||||
import { initReactI18next } from "react-i18next";
|
||||
import Backend from "@docspace/common/utils/i18next-http-backend";
|
||||
import Backend from "@docspace/shared/utils/i18next-http-backend";
|
||||
import { LANGUAGE } from "@docspace/shared/constants";
|
||||
import config from "PACKAGE_FILE";
|
||||
import { getCookie } from "@docspace/shared/utils";
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user