1
0
mirror of https://github.com/laurent22/joplin.git synced 2025-12-11 23:17:19 +02:00

Compare commits

..

77 Commits

Author SHA1 Message Date
Laurent Cozic
f0f33b7349 update 2023-07-06 18:56:40 +01:00
Laurent Cozic
1c5bb8f195 Merge branch 'feature/mobile-sorting' of https://github.com/jcgurango/joplin into jcgurango-feature/mobile-sorting 2023-07-06 18:42:22 +01:00
Laurent Cozic
e278a26dc8 Renovate ignore immer 2023-07-06 18:24:19 +01:00
renovate[bot]
2eac0078cd Update dependency react-native-image-picker to v5.4.2 (#8417)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-05 17:51:42 +00:00
Laurent Cozic
3fa6ce4583 Doc: Add brand guidelines 2023-07-05 15:19:47 +01:00
Laurent Cozic
7d218ca5b2 Doc: Add brand guidelines 2023-07-05 15:18:29 +01:00
renovate[bot]
721a37a377 Update dependency react-native-image-picker to v5.4.0 (#8416)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-05 13:20:29 +01:00
renovate[bot]
5600c498d8 Update dependency @rmp135/sql-ts to v1.17.0 (#8414)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-05 12:27:07 +01:00
Henry Heino
8eba798cdd Chore: Fix search filter tests in non UTC+0 timezones (#8411) 2023-07-04 18:56:06 +01:00
Laurent Cozic
0c76b731e7 Tools: Apply prefer-regex-literals eslint rule 2023-07-03 17:15:19 +01:00
Joplin Bot
2289e3297a Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-07-03 13:29:46 +00:00
github-actions[bot]
51fbb38f66 @hubertfilho has signed the CLA in laurent22/joplin#8376 2023-07-03 13:24:41 +00:00
Laurent Cozic
86aaa7f478 lock file 2023-07-03 13:28:40 +01:00
Laurent Cozic
c5c9d3a2ef Merge branch 'release-2.11' into dev 2023-07-03 13:14:33 +01:00
Laurent Cozic
1118fef164 Android 2.11.32 2023-07-03 13:08:52 +01:00
Laurent Cozic
e0ea76c9f1 Update translations 2023-07-03 12:26:33 +01:00
Laurent Cozic
2aab85f073 Android: Allow configuring voice typing model URL 2023-07-03 12:25:50 +01:00
Laurent Cozic
dfbe628944 Chore: Fixed asset order 2023-07-02 17:48:29 +01:00
Laurent Cozic
bc35649dda Chore: Disable warning in tests 2023-07-02 17:45:52 +01:00
Joplin Bot
09c6c81992 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-07-02 06:16:25 +00:00
Joplin Bot
cf98f6a450 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-07-02 00:49:06 +00:00
renovate[bot]
9e56bc72a3 Update dependency url to v0.11.1 (#8404)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-01 13:42:08 +00:00
Laurent Cozic
85b9fe06e4 Chore: Fixed buildCommandIndex 2023-07-01 12:56:34 +01:00
Laurent Cozic
e91e38c4e6 Server: Add yarn patches to Docker image 2023-07-01 12:52:30 +01:00
Joplin Bot
fbf2fef17c Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-07-01 00:51:33 +00:00
Laurent Cozic
3080575a17 Fixed tests 2023-06-30 16:23:05 +01:00
Laurent Cozic
10b9df7b9f Revert update of clean-html package 2023-06-30 13:13:45 +01:00
Laurent Cozic
dd6eec6a03 Tools: Apply rule @typescript-eslint/ban-types 2023-06-30 10:30:29 +01:00
Laurent Cozic
48ef6db4a5 Tools: Apply @typescript-eslint/ban-ts-comment rule 2023-06-30 10:22:47 +01:00
Laurent Cozic
7591a1182e Tools: Apply eslint rule multiline-comment-style with checkJSDoc option 2023-06-30 09:55:56 +01:00
Laurent Cozic
0c4ba592f6 Tools: Apply rule github/array-foreach 2023-06-30 09:39:21 +01:00
Laurent Cozic
c6a15b3186 Tools: Add eslint rule @typescript-eslint/array-type 2023-06-30 09:16:08 +01:00
Laurent Cozic
e89b59be8e Tools: Apply eslint rule @typescript-eslint/no-inferrable-types with ignoreArguments=false 2023-06-30 09:11:26 +01:00
Laurent Cozic
315f071337 Tools: Apply eslint rule @typescript-eslint/no-inferrable-types with ignoreProperties=false 2023-06-30 09:07:03 +01:00
renovate[bot]
667bb19765 Update dependency clean-html to v2 (#8398)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-30 08:21:12 +01:00
github-actions[bot]
21d09e44c4 @wljince007 has signed the CLA in laurent22/joplin#8391 2023-06-30 06:18:16 +00:00
renovate[bot]
d36c3069c3 Update dependency glob to v10.2.7 (#8395)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-29 22:50:11 +00:00
Joplin Bot
ab0747693d Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-06-29 18:20:22 +00:00
renovate[bot]
e322699829 Update dependency glob to v10.2.5 (#8392)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-29 18:55:03 +01:00
Laurent Cozic
220803d478 Doc: Added guiding principles 2023-06-29 13:55:26 +01:00
Laurent Cozic
78d558f72e Doc: Added sponsor 2023-06-29 13:55:25 +01:00
renovate[bot]
3c7dc9f11c Update dependency glob to v10 (#8386)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-29 13:34:43 +01:00
renovate[bot]
a8a8452d21 Update dependency yeoman-generator to v5.9.0 (#8385)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-29 12:56:41 +01:00
Laurent Cozic
9f5924984c Plugin Generator release v2.12.1 2023-06-28 15:13:26 +01:00
Laurent Cozic
6db5723a50 Setup new release 2.12 2023-06-28 15:12:32 +01:00
Laurent Cozic
1d0bcc435b Generator: Updated doc 2023-06-28 14:49:19 +01:00
Laurent Cozic
700158d83c Generator: Fixed incompatbility with latest Yeoman version 2023-06-28 14:48:52 +01:00
Laurent Cozic
df4e8c9f47 Generator: Add script updateVersion to update both manifest and package version numbers 2023-06-28 14:48:04 +01:00
renovate[bot]
ce6baccd82 Update dependency react-native-modal-datetime-picker to v15.0.1 (#8378)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-28 01:58:38 +00:00
renovate[bot]
0caf1fdd7b Update dependency react-native-modal-datetime-picker to v15 (#8377)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-27 22:03:22 +01:00
Laurent Cozic
adf1c5496e Lock file 2023-06-27 15:05:56 +01:00
Laurent Cozic
51b294e66b Releasing sub-packages 2023-06-27 15:05:03 +01:00
Laurent Cozic
893accf59c fix dep 2023-06-27 15:02:14 +01:00
renovate[bot]
2a10cd3333 Update dependency react-native-get-random-values to v1.9.0 (#8372)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-27 10:36:20 +01:00
JC Gurango
844f868aaa Merge branch 'feature/mobile-sorting' of https://github.com/jcgurango/joplin into feature/mobile-sorting 2023-05-31 00:05:59 +08:00
JC Gurango
4ec8666368 Add back long press behavior 2023-05-31 00:04:01 +08:00
JC Gurango
ec5ead7b6f Update yarn.lock 2023-05-30 22:49:44 +08:00
JC Gurango
2f7f306399 Merge branch 'dev' of https://github.com/laurent22/joplin into feature/mobile-sorting 2023-05-30 22:41:44 +08:00
jcgurango
4d6bbfa901 Merge branch 'dev' into feature/mobile-sorting 2023-04-25 15:47:15 +08:00
JC Gurango
8e9d1dab2a Revert assets to dev 2023-04-23 17:49:12 +08:00
JC Gurango
fd733f9079 Merge remote-tracking branch 'upstream/dev' into feature/mobile-sorting 2023-04-23 17:43:51 +08:00
JC Gurango
79cacc4d5a Add only 1 to index
My bad, seems this was the right way.
2023-04-23 17:05:54 +08:00
JC Gurango
2c91af21e2 Add 2 instead of 1 2023-04-22 00:00:14 +08:00
JC Gurango
4c0eff38ff Fix off-by-one when sorting notes downward 2023-04-20 03:22:22 +08:00
JC Gurango
e49d9ebbf0 Preserve drag gesture when selection enabled 2023-04-19 03:16:38 +08:00
JC Gurango
f73eee0d69 Merge branch 'update/convert-notelist-to-tsx' into feature/mobile-sorting 2023-04-19 03:13:25 +08:00
JC Gurango
d5fc645fe6 Update based on @laurent22 comments 2023-04-19 03:09:28 +08:00
JC Gurango
0eded263b3 Move note list updating to NoteList.tsx 2023-04-19 03:08:03 +08:00
JC Gurango
a0c923fab3 Merge branch 'update/convert-notelist-to-tsx' into feature/mobile-sorting 2023-04-19 02:23:29 +08:00
JC Gurango
1e352ec0b1 Merge branch 'dev' of https://github.com/laurent22/joplin into update/convert-notelist-to-tsx 2023-04-19 02:15:13 +08:00
JC Gurango
9bf7864142 Convert note-list.js to TSX file 2023-04-11 22:41:13 +08:00
JC Gurango
9e587c1b06 Fix bottom-most notes slightly cutoff
Seems the FlatList was going past the screen. Tried putting the
flex: 1 on the DraggableFlatList itself but that makes it disappear.
Putting it in a View seems to work.
2023-03-29 21:39:00 +08:00
JC Gurango
66755c5386 Merge branch 'feature/mobile-sorting' of https://github.com/jcgurango/joplin into feature/mobile-sorting 2023-03-27 16:55:47 +08:00
JC Gurango
042a8e5d30 Enable scrolling 2023-03-27 16:55:29 +08:00
jcgurango
faade53cf9 Merge branch 'dev' into feature/mobile-sorting 2023-03-27 16:39:44 +08:00
JC Gurango
8f526474ea Implement swipe gesture for selection 2023-03-27 16:32:05 +08:00
JC Gurango
3547211078 Implement sorting 2023-03-27 16:31:53 +08:00
411 changed files with 8208 additions and 6068 deletions

View File

@@ -97,6 +97,7 @@ module.exports = {
'promise/prefer-await-to-then': 'error',
'no-unneeded-ternary': 'error',
'github/array-foreach': ['error'],
// -------------------------------
// Formatting
@@ -136,12 +137,13 @@ module.exports = {
'named': 'never',
'asyncArrow': 'always',
}],
'multiline-comment-style': ['error', 'separate-lines'],
'multiline-comment-style': ['error', 'separate-lines', { checkJSDoc: true }],
'space-before-blocks': 'error',
'spaced-comment': ['error', 'always'],
'keyword-spacing': ['error', { 'before': true, 'after': true }],
'no-multi-spaces': ['error'],
'prefer-object-spread': ['error'],
'prefer-regex-literals': ['error', { disallowRedundantWrapping: true }],
// Regarding the keyword blacklist:
// - err: We generally avoid using too many abbreviations, so it should
@@ -161,6 +163,7 @@ module.exports = {
'import',
'promise',
'jest',
'github',
],
'overrides': [
{
@@ -181,9 +184,12 @@ module.exports = {
'project': './tsconfig.eslint.json',
},
'rules': {
'@typescript-eslint/ban-ts-comment': ['error'],
'@typescript-eslint/ban-types': 'error',
'@typescript-eslint/explicit-member-accessibility': ['error'],
'@typescript-eslint/type-annotation-spacing': ['error', { 'before': false, 'after': true }],
'@typescript-eslint/no-inferrable-types': ['error', { 'ignoreParameters': true, 'ignoreProperties': true }],
'@typescript-eslint/array-type': 'error',
'@typescript-eslint/no-inferrable-types': ['error'],
'@typescript-eslint/comma-dangle': ['error', {
'arrays': 'always-multiline',
'objects': 'always-multiline',

View File

@@ -0,0 +1,15 @@
diff --git a/lib/rules/multiline-comment-style.js b/lib/rules/multiline-comment-style.js
index 9cb7f3473e5a124e2eedb12685650f047afa84b6..124e062955e1b51cbdddd0920c22446dc97dd261 100644
--- a/lib/rules/multiline-comment-style.js
+++ b/lib/rules/multiline-comment-style.js
@@ -377,6 +377,10 @@ module.exports = {
commentLines = commentLines.slice(1, commentLines.length - 1);
}
+ // We have to allow this because it's always a top comment and
+ // it has to be in a jsdoc block
+ if (commentLines.join('').trim().startsWith('@jest-environment')) return;
+
const tokenAfter = sourceCode.getTokenAfter(firstComment, { includeComments: true });
if (tokenAfter && firstComment.loc.end.line === tokenAfter.loc.start.line) {

View File

@@ -0,0 +1,810 @@
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */button,hr,input{overflow:visible}progress,sub,sup{vertical-align:baseline}[type=checkbox],[type=radio],legend{box-sizing:border-box;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}details,main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:ButtonText dotted 1px}fieldset{padding:.35em .75em .625em}legend{color:inherit;display:table;max-width:100%;white-space:normal}textarea{overflow:auto}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}[hidden],template{display:none}
/* Global */
:root {
--primary-DarkBlue: #043873;
--primary-White: #ffffff;
--primary-DarkGray: #32363f;
--accent-LightBlue: #4f9cf9;
--accent-Yellow: #ffe492;
--variationPrimary-VaraintDark: #072445;
--variationPrimary-VaraintWhite: #f8f9fa;
--variationPrimary-VaraintDarkGray: #212529;
--variationAccent-VaraintLightBlue: #d9e8f8;
}
* {
font-family: "Montserrat", sans-serif;
}
#mobile_icon_logo{
display: none;
}
.joplin__para {
font-weight: 400;
font-size: 20.8px;
line-height: 1.5;
color: var(--primary-DarkGray);
margin: 0;
padding: 0;
}
@media screen and (max-width: 767px) {
.joplin__para {
/* text-align: center; */
width: 100% !important;
}
}
@media screen and (max-width: 425px) {
.joplin__para {
font-size: 18px;
}
}
.joplin__tagline1 {
font-weight: 700;
font-size: 32px;
line-height: 1.5;
color: var(--variationPrimary-VaraintDarkGray);
}
@media screen and (max-width: 425px) {
.joplin__tagline1 {
font-size: 28px;
}
}
@media (min-width: 576px) {
.container {
max-width: 540px;
}
}
@media (min-width: 768px) {
.container {
max-width: 720px;
}
}
@media (min-width: 992px) {
.container {
max-width: 960px;
}
}
@media (min-width: 1200px) {
.container {
max-width: 1140px;
}
}
@media (min-width: 1400px) {
.container {
max-width: 1220px;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.justify-content-tablet-end {
justify-content: flex-end;
}
}
/* Global */
/* Header */
header {
background-image: url("../images/brand/background\ blue\ motif\ 1.png");
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
border-radius: 5px;
padding: 36px 0;
}
header .container nav {
display: flex;
justify-content: space-between;
align-items: center;
}
@media screen and (max-width: 425px) {
header .container nav {
align-items: flex-start;
}
}
header .container nav h1.main-logo {
font-weight: 600;
font-size: 48px;
color: var(--primary-White);
text-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
margin: 0;
text-align: right;
}
@media screen and (max-width: 992px) {
header .container nav img {
max-width: 200px;
}
#brand_guidelines{
margin-top: 50px;
font-weight: 600;
}
}
@media screen and (max-width: 767px) {
header .container nav img {
max-width: 150px;
}
}
@media screen and (max-width: 576px) {
#main_lockup {
display: none;
}
#mobile_icon_logo{
display: block;
max-width: 80px;
margin-top: 20px;
}
#brand_guidelines{
text-align: left;
padding-left: 20px;
margin-top: 10px;
}
}
@media screen and (max-width: 375px) {
header .container nav h1.main-logo {
font-size: 40px;
}
#main_lockup{
display: none;
}
#mobile_icon_logo{
display: block;
max-width: 80px;
margin-top: 20px;
}
#brand_guidelines{
text-align: left;
padding-left: 30px;
margin-top: 10px;
}
}
/*header .container nav .logo {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 30px;
flex-wrap: nowrap;
}*/
@media (min-width: 768px) and (max-width: 991px) {
header .container nav .logo {
align-items: flex-start;
}
}
header .container nav .logo h3 {
font-weight: 600;
font-size: 48px;
color: #ffffff;
letter-spacing: 1px;
margin: 0;
}
@media screen and (max-width: 560px) {
header .container nav .logo h3 {
display: none;
}
}
/* Header */
/* joplin Logos */
.joplin__logos {
padding-top: 0px;
padding-bottom: 43px;
}
.joplin__logos h2.main-logo {
font-weight: 700;
font-size: 40px;
color: var(--primary-DarkBlue);
margin-bottom: 45px;
}
@media screen and (max-width: 767px) {
.joplin__logos h2.main-logo {
text-align: center;
}
}
@media screen and (max-width: 767px) {
.joplin__logos h2.main-logo {
font-size: 33px;
}
}
.joplin__logos .container > p {
margin-bottom: 6px;
}
.joplin__logos > .wrapper {
padding: 42px 59px 48px 66px;
margin: 40px 45px;
width: calc(100% - 6.5vw);
border: 1px solid var(--variationPrimary-VaraintDarkGray);
border-radius: 5px;
}
@media screen and (max-width: 1440px) {
.joplin__logos > .wrapper {
padding: 40px 0 45px 0;
margin: 40px auto;
}
}
.joplin__logos .wrapper .para-1 {
margin-bottom: 19px;
}
.joplin__logos .wrapper .logo-wrapper {
display: flex;
justify-content: flex-start;
align-items: center;
gap: 27px;
}
.joplin__logos .wrapper .logo-wrapper:last-child {
gap: 24px;
}
@media screen and (max-width: 320px) {
.joplin__logos .wrapper .logo-wrapper img {
width: 50px;
height: 50px;
}
}
.joplin__logos .wrapper .logo-wrapper h4 {
font-size: 38px;
font-weight: 600;
}
@media screen and (max-width: 320px) {
.joplin__logos .wrapper .logo-wrapper h4 {
font-size: 32px;
font-weight: 600;
}
}
.joplin__logos .wrapper .logo-wrapper .blue-header {
color: var(--accent-LightBlue);
margin: 0;
}
.joplin__logos .wrapper .logo-wrapper .white-header {
color: var(--primary-White);
margin: 0;
}
.joplin__logos .wrapper .para-1 .blue-text {
font-weight: bold;
color: var(--accent-LightBlue);
}
@media screen and (max-width: 767px) {
.joplin__logos .wrapper .box:nth-child(1) {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
}
.joplin__logos .wrapper .box:nth-child(1) > p {
width: 80%;
}
@media screen and (max-width: 1024px) {
.joplin__logos .wrapper .box:nth-child(1) > p {
width: 90%;
}
}
.para-1 {
width: 100%;
}
.joplin__logos .wrapper-2 .our-para {
width: 100% !important;
}
@media screen and (min-width: 1400px) {
.joplin__logos .wrapper .box2 {
/* padding-left: 50px;
margin-right: -130px; */
}
}
.joplin__logos .wrapper .colored-box {
background-color: var(--primary-DarkBlue);
padding: 17px 15px 15px 24px;
/* width: 320px; */
/* height: 189px; */
}
@media (min-width: 768px) and (max-width: 991px) {
.joplin__logos .wrapper .colored-box {
transform: translateX(-35px);
}
}
.joplin__logos .wrapper .colored-box p {
font-weight: normal;
color: var(--primary-White);
margin-bottom: 20px;
line-height: 1.5;
}
@media screen and (max-width: 767px) {
.joplin__logos .wrapper .colored-box {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
width: 100%;
}
}
.joplin__logos .wrapper .box-wrapper {
display: flex;
justify-content: flex-start;
align-items: flex-start;
gap: 14px;
}
@media screen and (max-width: 767px) {
.joplin__logos .wrapper .box-wrapper {
flex-direction: column-reverse;
justify-content: center;
align-items: center;
}
.joplin__logos .wrapper h2 {
text-align: center;
}
}
.joplin__logos .wrapper .box-wrapper img {
margin-top: 7px;
max-width: 100%;
}
.joplin__logos .wrapper .box-wrapper p {
width: 70%;
}
.joplin__logos .wrapper-2 {
position: relative;
padding: 42px 0 35px 0;
}
@media screen and (max-width: 425px) {
.joplin__logos .wrapper-2 {
padding: 42px 0 35px 0;
}
}
.joplin__logos .wrapper-2 .pipeline {
width: 1px;
height: 94%;
background-color: var(--variationPrimary-VaraintDarkGray);
position: absolute;
top: 50%;
left: 47%;
transform: translate(-50%, -50%);
}
@media screen and (max-width: 1200px) {
.joplin__logos .wrapper-2 .pipeline {
display: none;
}
}
@media screen and (max-width: 1366px) {
.joplin__logos .wrapper-2 .pipeline {
left: 49%;
}
}
.joplin__logos .wrapper-2 .joplin__tagline1 {
margin-bottom: 34px;
}
.joplin__logos .wrapper-2 .our-para {
margin-top: 19px;
}
.joplin__logos .wrapper-2 img {
max-width: 100%;
}
@media screen and (max-width: 425px) {
.joplin__logos .wrapper-2 .box-wrapper {
margin-right: 0;
}
}
@media (min-width: 1400px) and (max-width: 2100px) {
.joplin__logos .wrapper-2 .special-box {
margin-left: 150px;
}
.joplin__logos .wrapper-2 .special-box p {
width: 100%;
}
.joplin__logos .wrapper-2 .pipeline {
left: 53%;
}
}
/* @media (min-width: 1441px) and (max-width: 1750px) {
.joplin__logos .p-row {
padding: 0 5rem;
}
} */
/* joplin Logos */
/* joplin__Colours */
.joplin__colours {
padding: 5px 0;
background-image: url("../images/brand/background\ blue\ motif\ 2.png");
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
}
.joplin__colours h2 {
color: var(--primary-White);
font-size: 40px;
margin-bottom: 28px;
font-weight: 700;
}
@media screen and (max-width: 767px) {
.joplin__colours h2 {
font-size: 33px;
}
}
@media screen and (max-width: 767px) {
.joplin__colours h2 {
text-align: center;
}
}
.joplin__colours p {
color: var(--primary-White);
margin-bottom: 40px;
}
.joplin__colours .custom-row {
display: flex;
justify-content: center;
align-items: center;
gap: 45px;
padding-bottom: 20px;
}
@media screen and (max-width: 1400px) {
.joplin__colours .custom-row {
flex-wrap: wrap;
}
}
.joplin__colours .custom-row .chartjs-wrapper canvas {
width: 535px;
}
@media screen and (max-width: 575px) {
.joplin__colours .custom-row .chartjs-wrapper canvas {
width: 270px;
}
}
/* joplin__Colours */
/* joplin__Pallet */
.joplin__pallet {
padding: 45px 0 92px 0;
}
.joplin__pallet h3 {
font-weight: 600;
font-size: 32px;
margin-bottom: 50px;
}
@media screen and (max-width: 767px) {
.joplin__pallet h3 {
font-size: 28px;
}
}
@media screen and (max-width: 1200px) {
.joplin__pallet h3 {
text-align: center;
}
}
.joplin__pallet .sigma-wrapper {
display: flex;
align-items: center;
justify-content: flex-start;
gap: 35px;
}
@media screen and (max-width: 555px) {
.joplin__pallet .sigma-wrapper {
flex-direction: column;
}
}
.joplin__pallet .sigma-wrapper .circle-wrapper {
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: flex-start;
}
@media screen and (max-width: 992px) {
.joplin__pallet .sigma-wrapper .circle-wrapper {
align-items: center;
}
}
@media screen and (max-width: 1200px) {
.joplin__pallet .sigma-wrapper {
justify-content: center;
}
}
.joplin__pallet .sigma-wrapper .circle-wrapper .circle {
width: 120px;
height: 120px;
border-radius: 50%;
border: 1px solid #000;
margin-bottom: 30px;
}
.joplin__pallet .row-space {
padding: 50px 0;
display: flex;
justify-content: flex-end;
align-items: center;
}
.joplin__pallet .row-space div {
width: 97%;
height: 1px;
background-color: var(--primary-DarkGray);
}
.joplin__pallet .dark-blue {
background-color: var(--primary-DarkBlue);
}
.joplin__pallet .white {
background-color: var(--primary-White);
}
.joplin__pallet .dark-gray {
background-color: var(--primary-DarkGray);
}
.joplin__pallet .light-blue {
background-color: var(--accent-LightBlue);
}
.joplin__pallet .yellow {
background-color: var(--accent-Yellow);
}
.joplin__pallet .variant-dark {
background-color: var(--variationPrimary-VaraintDark);
}
.joplin__pallet .variant-white {
background-color: var(--variationPrimary-VaraintWhite);
}
.joplin__pallet .variant-dark-gray {
background-color: var(--variationPrimary-VaraintDarkGray);
}
.joplin__pallet .variant-light-blue {
background-color: var(--variationAccent-VaraintLightBlue);
}
/* joplin__Pallet */
/* joplin__State */
.joplin__state {
background-color: var(--primary-DarkBlue);
background-image: url("../images/brand/Rectangle\ 16.png");
background-position: bottom center;
background-repeat: no-repeat;
background-size: cover;
padding: 65px 0 78px 0;
position: relative;
}
.joplin__state::before {
content: "";
width: 1px;
height: 98%;
background-color: var(--variationPrimary-VaraintDarkGray);
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
overflow: hidden;
}
@media screen and (max-width: 992px) {
.joplin__state::before {
display: none;
}
}
.joplin__state .image {
transform: translateY(25px);
}
.joplin__state .wrapper > div {
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: center;
}
.joplin__state .wrapper > div .box h2 {
color: var(--primary-White);
font-size: 40px;
margin-bottom: 28px;
font-weight: 700;
}
/* @media screen and (min-width: 1400px) {
.joplin__state .wrapper > div .box h2 {
text-wrap: nowrap;
}
} */
@media screen and (max-width: 767px) {
.joplin__state .wrapper > div .box h2 {
text-align: center;
}
}
@media screen and (max-width: 500px) {
.joplin__state .wrapper > div .box h2 {
font-size: 38px;
}
}
@media screen and (max-width: 767px) {
.joplin__state .wrapper > div .box h2 {
font-size: 33px;
}
}
.joplin__state .wrapper > div .box p {
color: var(--primary-White);
width: 85%;
}
@media screen and (max-width: 500px) {
.joplin__state .wrapper > div .box p {
font-size: 18px;
}
}
.joplin__state .wrapper > div .box img {
max-width: 100%;
}
.joplin__highlighter {
padding: 74px 0;
background-image: url("../images/brand/Rectangle\ 16.png");
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
}
.joplin__highlighter h2 {
color: var(--primary-White);
font-size: 40px;
margin-bottom: 28px;
font-weight: 700;
}
@media screen and (max-width: 767px) {
.joplin__highlighter h2 {
font-size: 33px;
}
}
@media screen and (max-width: 767px) {
.joplin__highlighter h2 {
text-align: center;
}
}
.joplin__highlighter p {
color: var(--primary-White);
}
@media screen and (max-width: 500px) {
.joplin__highlighter p {
font-size: 18px;
}
}
.joplin__highlighter .wrapper {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 22px;
}
@media screen and (max-width: 767px) {
.joplin__highlighter .wrapper {
flex-wrap: wrap;
row-gap: 25px;
justify-content: center;
}
}
.joplin__highlighter .wrapper div {
padding: 32px 62px;
border-radius: 5px;
position: relative;
}
.joplin__highlighter .wrapper div:first-child img {
position: absolute;
top: 57%;
max-width: 100%;
}
.joplin__highlighter .wrapper div:last-child img {
position: absolute;
top: 59%;
max-width: 100%;
}
@media screen and (max-width: 1200px) {
.joplin__highlighter .wrapper div:first-child img {
top: 43%;
}
.joplin__highlighter .wrapper div:last-child img {
top: 44%;
}
}
@media screen and (max-width: 767px) {
.joplin__highlighter .wrapper div:first-child img {
top: 59%;
}
.joplin__highlighter .wrapper div:last-child img {
top: 59%;
}
}
@media screen and (max-width: 490px) {
.joplin__highlighter .wrapper div:first-child img {
top: 43%;
}
.joplin__highlighter .wrapper div:last-child img {
top: 43%;
}
}
@media screen and (max-width: 320px) {
.joplin__highlighter .wrapper div:last-child img {
top: 36%;
}
}
.joplin__highlighter .wrapper div.yellow {
background-color: var(--primary-White);
}
.joplin__highlighter .wrapper div.blue {
background-color: var(--primary-DarkBlue);
}
.joplin__highlighter .wrapper div h4 {
color: var(--variationPrimary-VaraintDarkGray);
margin: 0;
font-weight: 700;
font-size: 20.8px;
line-height: 1.5;
}
.joplin__highlighter .wrapper div.blue h4 {
color: var(--primary-White);
}
/* joplin__State */
/* joplin__Voice */
.joplin__voice {
padding: 78px 0;
}
.joplin__voice .container h2 {
font-weight: 700;
font-size: 40px;
line-height: 1.5;
color: var(--variationPrimary-VaraintDarkGray);
}
@media screen and (max-width: 500px) {
.joplin__voice .container h2 {
font-size: 38px;
}
}
@media screen and (max-width: 767px) {
.joplin__voice .container h2 {
font-size: 33px;
text-align: center;
}
}
.joplin__voice .container .wrapper {
margin-top: 57px;
}
.joplin__voice .container .wrapper .box {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 20px;
}
@media screen and (max-width: 767px) {
.joplin__voice .container .wrapper .box {
flex-direction: column;
}
}
.joplin__voice .container .wrapper .box div:first-child {
flex: 1;
}
.joplin__voice .container .wrapper .box div:last-child {
flex: 2;
}
.joplin__voice .container .wrapper .box div h3 {
font-weight: 700;
font-size: 32px;
line-height: 1.7;
color: var(--primary-DarkGray);
}
@media (max-width: 767px) {
.joplin__voice .container .wrapper .box div h3 {
text-align: center;
font-size:28px;
}
.joplin__voice .container .wrapper .box {
align-items: center;
}
}
.joplin__voice .container .wrapper .box div p {
margin-bottom: 36px;
}
@media screen and (max-width: 500px) {
.joplin__voice .container .wrapper .box div p {
font-size: 18px;
}
}
/* joplin__Voice */
.chartjs-wrapper {
background-color: #d9d9d9;
padding: 10px 20px;
max-width: 45%;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

View File

@@ -0,0 +1,392 @@
<!-- Logos Section -->
<section class="joplin__logos">
<div class="container">
<h2 class="main-logo">Logos</h2>
<p class="joplin__para">
All the variations of Joplin logo are all front facing. <br />
To ensure a clarity and legibility of design, the logo should always
be surrounded by a clear space.
</p>
</div>
<div class="wrapper">
<div class="container">
<div class="row align-items-center justify-content-tablet-end gy-5 p-row">
<div class="col-xxl-4 col-xl-4 col-lg-6 col-md-6 col-sm-12">
<div class="box">
<h3 class="joplin__tagline1">Lockup logo</h2>
<p class="joplin__para">
Joplin lockup is the company's main logo. It is used for
corporate materials and marketing communications. To ensure
sufficient contrast and readability, two following versions of
the lockup are provided.
</p>
</div>
</div>
<div class="col-xxl-4 col-xl-4 col-lg-6 col-md-6 col-sm-12">
<div class="box box2">
<p class="joplin__para para-1">
<span class="blue-text">Blue text</span> version to be used on
bright background.
</p>
<div class="logo-wrapper">
<img src="{{imageBaseUrl}}/brand/Vector.png" alt="" />
<h4 class="blue-header">Joplin</h4>
</div>
</div>
</div>
<div class="col-xxl-4 col-xl-4 col-lg-6 col-md-6 col-sm-12">
<div class="colored-box">
<p class="joplin__para">
White text version to be used <br />
on dark background.
</p>
<div class="logo-wrapper">
<img src="{{imageBaseUrl}}/brand/Vector2.png" alt="" />
<h4 class="white-header">Joplin</h4>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="wrapper wrapper-2">
<div class="container">
<div class="pipeline"></div>
<div class="row align-items-center gy-5 p-row justify-between">
<div class="col-xxl-6 col-xl-6 col-lg-12 col-md-12 col-sm-12">
<div class="box">
<h3 class="joplin__tagline1">Brandmark logo</h2>
<div class="box-wrapper">
<img
src="{{imageBaseUrl}}/brand/J logo transparent background 1.png"
alt=""
/>
<p class="joplin__para">
The classic brandmark icon is often used on a bright
background to help increase the contrast. It is a reduced
version of a logo which should be used in limited spacing or
when using a full company name is not necessary.
</p>
</div>
</div>
</div>
<div class="col-xxl-6 col-xl-6 col-lg-12 col-md-12 col-sm-12">
<div class="box special-box">
<h3 class="joplin__tagline1">Joplin tagline</h3>
<img src="{{imageBaseUrl}}/brand/tagline 1.png" alt="" />
<p class="joplin__para our-para">
Our tagline is an invitation to capture your thoughts and
securely access them from any device.
</p>
</div>
</div>
</div>
</div>
</div>
</section>
</section>
<section class="joplin__colours">
<div class="container">
<h2>Colours</h2>
<p class="joplin__para">
Two core colour palettes can be used while representing the brand. The
accent colours are used to highlight <br />
important elements and support the colours of the core palettes.
</p>
<div class="custom-row gy-4">
<div
class="chartjs-wrapper"
>
<canvas id="chart1" ></canvas>
</div>
<div
class="chartjs-wrapper"
>
<canvas id="chart2" ></canvas>
</div>
</div>
</div>
</section>
<!-- Colours Section -->
<!-- Pallet Section -->
<section class="joplin__pallet">
<div class="container">
<div class="row gy-5">
<div class="col-xxl-6 col-xl-6 col-lg-12 col-md-12 col-sm-12">
<h3>Primary colours</h3>
<div class="sigma-wrapper">
<div class="circle-wrapper">
<div class="circle dark-blue"></div>
<div class="info">
<p class="joplin__para">Dark blue</p>
<p class="joplin__para">HEX - 043873</p>
<p class="joplin__para">RGB - 4, 56, 115</p>
</div>
</div>
<div class="circle-wrapper">
<div class="circle white"></div>
<div class="info">
<p class="joplin__para">White</p>
<p class="joplin__para">HEX - FFFFFF</p>
<p class="joplin__para">RGB - 255, 255,</p>
</div>
</div>
<div class="circle-wrapper">
<div class="circle dark-gray"></div>
<div class="info">
<p class="joplin__para">Dark gray</p>
<p class="joplin__para">HEX - 32363F</p>
<p class="joplin__para">RGB - 50, 54, 63</p>
</div>
</div>
</div>
</div>
<div class="col-1"></div>
<div class="col-xxl-5 col-xl-5 col-lg-12 col-md-12 col-sm-12">
<h3>Accent colours</h3>
<div class="sigma-wrapper">
<div class="circle-wrapper">
<div class="circle light-blue"></div>
<div class="info">
<p class="joplin__para">Light blue</p>
<p class="joplin__para">HEX - 4F9CF9</p>
<p class="joplin__para">RGB - 79, 156, 249</p>
</div>
</div>
<div class="circle-wrapper">
<div class="circle yellow"></div>
<div class="info">
<p class="joplin__para">Yellow</p>
<p class="joplin__para">HEX - FFE492</p>
<p class="joplin__para">RGB - 255, 228, 146</p>
</div>
</div>
</div>
</div>
</div>
<div class="row row-space">
<div></div>
</div>
<div class="row gy-5">
<div class="col-xxl-6 col-xl-6 col-lg-12 col-md-12 col-sm-12">
<h3>
Allowed variations of <br />
primary colours
</h3>
<div class="sigma-wrapper">
<div class="circle-wrapper">
<div class="circle variant-dark"></div>
<div class="info">
<p class="joplin__para">Variant dark</p>
<p class="joplin__para">HEX - 072445</p>
<p class="joplin__para">RGB - 7, 36, 69</p>
</div>
</div>
<div class="circle-wrapper">
<div class="circle variant-white"></div>
<div class="info">
<p class="joplin__para">Variant white</p>
<p class="joplin__para">HEX - F8F9FA</p>
<p class="joplin__para">RGB - 248, 249,</p>
</div>
</div>
<div class="circle-wrapper">
<div class="circle variant-dark-gray"></div>
<div class="info">
<p class="joplin__para">Variant dark gray</p>
<p class="joplin__para">HEX - 212529</p>
<p class="joplin__para">RGB - 33, 37, 41</p>
</div>
</div>
</div>
</div>
<div class="col-1"></div>
<div class="col-xxl-5 col-xl-5 col-lg-12 col-md-12 col-sm-12">
<h3>
Allowed variations of <br />
accent colours
</h3>
<div class="sigma-wrapper">
<div class="circle-wrapper">
<div class="circle variant-light-blue"></div>
<div class="info">
<p class="joplin__para">Variant light blue</p>
<p class="joplin__para">HEX - D9E8F8</p>
<p class="joplin__para">RGB - 217, 232,</p>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Pallet Section -->
<!-- State Section -->
<section class="joplin__state">
<div class="container">
<div class="wrapper row justify-content-between gy-5">
<div class="col-12 col-lg-5">
<div class="box pb-3">
<h2>Typography</h2>
<p class="joplin__para">
<b>Font-family: Montserrat</b> <br />
Montserrat is a typeface chosen for its great readability. It is
used as a default font. Sans-serif font should be used when
Montserrat is not available.
</p>
</div>
<div class="box">
<h2>Connector element</h2>
<p class="joplin__para">
The graphic element that represents the connection between the
components, files and data. It's Joplin's signature element
present in application's website as well as in marketing
communications.
</p>
</div>
</div>
<div class="col-12 col-lg-5">
<div class="box">
<h2>Imagery</h2>
<p class="joplin__para">
The company uses vector art illustration . It ensures high
quality images in any scale, large or small. All the
illustrations come from storyset.com and are personalised to
match the company's colours.
</p>
</div>
<div class="box">
<img src="{{imageBaseUrl}}/brand/customise-it-img 1.png" alt="" class="image" />
</div>
</div>
</div>
</div>
</section>
<section class="joplin__highlighter">
<div class="container">
<h2>Highlighter</h2>
<p class="joplin__para">
It is a reference to process of note taking on paper. It is used to
emphasize words in the titles. There are two <br />
variations of the element:
</p>
<div class="wrapper">
<div class="yellow">
<h4>Yellow version under dark text</h4>
<img src="{{imageBaseUrl}}/brand/frame-yellow 1.png" alt="" />
</div>
<div class="blue">
<h4>Light blue version under white text</h4>
<img src="{{imageBaseUrl}}/brand/frame-blue 1.png" alt="" />
</div>
</div>
</div>
</section>
<section class="joplin__voice">
<div class="container">
<h2>Tone of voice</h2>
<div class="wrapper">
<div class="box">
<div>
<h3>
Professional, <br />
Friendly, <br />
Welcoming, <br />
Trustworthy, <br />
Open-minded, <br />
Genuine
</h3>
</div>
<div>
<p class="joplin__para">
We believe that transparency is key to honest and successful
communication. We remain <b>trustworthy</b> and
<b>genuine</b> in engaging with our users and Joplin community.
</p>
<p class="joplin__para">
As a company providing open-source product we stay
<b>open-minded</b> and <b>enthusiastic</b> about new ideas and
solutions. At the same time we continue to be
<b>professional</b> to honour the trust the users place in us.
</p>
<p class="joplin__para">
We appreciate the value the users bring to our product and
therefore we keep our tone <b>friendly</b> and <b>welcoming</b>.
</p>
</div>
</div>
</div>
</div>
</section>
<!-- State Section -->
<!-- Chart.Js Lib -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.9.1/chart.min.js"></script>
<script>
const ctx = document.getElementById("chart1");
const myChart = new Chart(ctx, {
type: "pie",
data: {
labels: ["Dark blue 60%", "White 20%", "light blue 10%", "yellow 7%", "dark gray 3%"],
datasets: [
{
label: "# of Votes",
data: [60, 20, 10, 7, 3],
backgroundColor: [
"#043873",
"#ffffff",
"#4f9cf9",
"#ffe492",
"#212529",
],
},
],
},
options: {
layout: {},
plugins: {
title: {
display: true,
text: "Blue colour palette",
font: {
size: 21,
align: "left",
},
},
},
},
});
const ctx2 = document.getElementById("chart2");
const myChart2 = new Chart(ctx2, {
type: "pie",
data: {
labels: ["White 60%", "Dark 20%", "light blue 10%", "dark gray 7%", "yellow 3%"],
datasets: [
{
label: "# of Votes",
data: [60, 20, 10, 7, 3],
backgroundColor: [
"#ffffff",
"#043873",
"#4f9cf9",
"#212529",
"#ffe492",
],
},
],
},
options: {
layout: {},
plugins: {
title: {
display: true,
text: "White colour palette",
font: {
size: 21,
align: "left",
},
},
},
},
});
</script>

View File

@@ -40,6 +40,7 @@ https://github.com/laurent22/joplin/blob/dev/{{{sourceMarkdownFile}}}
onload="this.media='all'; this.onload = null"
/>
<link rel="stylesheet" href="{{{assetUrls.css.site}}}" as="style" />
{{#assetUrls.css.brand}}<link rel="stylesheet" href="{{{assetUrls.css.brand}}}" as="style" />{{/assetUrls.css.brand}}
<title>{{pageTitle}}</title>
<script

View File

@@ -16,6 +16,7 @@ WORKDIR /build
COPY .yarn/plugins ./.yarn/plugins
COPY .yarn/releases ./.yarn/releases
COPY .yarn/patches ./.yarn/patches
COPY package.json .
COPY .yarnrc.yml .
COPY yarn.lock .

View File

@@ -75,10 +75,11 @@ A community maintained list of these distributions can be found here: [Unofficia
| | | | |
| :---: | :---: | :---: | :---: |
| <img width="50" src="https://avatars2.githubusercontent.com/u/215668?s=96&v=4"/></br>[avanderberg](https://github.com/avanderberg) | <img width="50" src="https://avatars2.githubusercontent.com/u/67130?s=96&v=4"/></br>[chr15m](https://github.com/chr15m) | <img width="50" src="https://avatars2.githubusercontent.com/u/2793530?s=96&v=4"/></br>[CyberXZT](https://github.com/CyberXZT) | <img width="50" src="https://avatars2.githubusercontent.com/u/1307332?s=96&v=4"/></br>[dbrandonjohnson](https://github.com/dbrandonjohnson) |
| <img width="50" src="https://avatars2.githubusercontent.com/u/49439044?s=96&v=4"/></br>[fourstepper](https://github.com/fourstepper) | <img width="50" src="https://avatars2.githubusercontent.com/u/64712218?s=96&v=4"/></br>[Hegghammer](https://github.com/Hegghammer) | <img width="50" src="https://avatars2.githubusercontent.com/u/3266447?s=96&v=4"/></br>[iamwillbar](https://github.com/iamwillbar) | <img width="50" src="https://avatars2.githubusercontent.com/u/1310474?s=96&v=4"/></br>[jknowles](https://github.com/jknowles) |
| <img width="50" src="https://avatars2.githubusercontent.com/u/11947658?s=96&v=4"/></br>[KentBrockman](https://github.com/KentBrockman) | <img width="50" src="https://avatars2.githubusercontent.com/u/5588131?s=96&v=4"/></br>[kianenigma](https://github.com/kianenigma) | <img width="50" src="https://avatars2.githubusercontent.com/u/24908652?s=96&v=4"/></br>[konishi-t](https://github.com/konishi-t) | <img width="50" src="https://avatars2.githubusercontent.com/u/42319182?s=96&v=4"/></br>[marcdw1289](https://github.com/marcdw1289) |
| <img width="50" src="https://avatars2.githubusercontent.com/u/126279083?s=96&v=4"/></br>[matmoly](https://github.com/matmoly) | <img width="50" src="https://avatars2.githubusercontent.com/u/1788010?s=96&v=4"/></br>[maxtruxa](https://github.com/maxtruxa) | <img width="50" src="https://avatars2.githubusercontent.com/u/29300939?s=96&v=4"/></br>[mcejp](https://github.com/mcejp) | <img width="50" src="https://avatars2.githubusercontent.com/u/31054972?s=96&v=4"/></br>[saarantras](https://github.com/saarantras) |
| <img width="50" src="https://avatars2.githubusercontent.com/u/327998?s=96&v=4"/></br>[sif](https://github.com/sif) | <img width="50" src="https://avatars2.githubusercontent.com/u/765564?s=96&v=4"/></br>[taskcruncher](https://github.com/taskcruncher) | <img width="50" src="https://avatars2.githubusercontent.com/u/333944?s=96&v=4"/></br>[tateisu](https://github.com/tateisu) | |
| <img width="50" src="https://avatars2.githubusercontent.com/u/56287?s=96&v=4"/></br>[fats](https://github.com/fats) | <img width="50" src="https://avatars2.githubusercontent.com/u/49439044?s=96&v=4"/></br>[fourstepper](https://github.com/fourstepper) | <img width="50" src="https://avatars2.githubusercontent.com/u/64712218?s=96&v=4"/></br>[Hegghammer](https://github.com/Hegghammer) | <img width="50" src="https://avatars2.githubusercontent.com/u/3266447?s=96&v=4"/></br>[iamwillbar](https://github.com/iamwillbar) |
| <img width="50" src="https://avatars2.githubusercontent.com/u/1310474?s=96&v=4"/></br>[jknowles](https://github.com/jknowles) | <img width="50" src="https://avatars2.githubusercontent.com/u/11947658?s=96&v=4"/></br>[KentBrockman](https://github.com/KentBrockman) | <img width="50" src="https://avatars2.githubusercontent.com/u/5588131?s=96&v=4"/></br>[kianenigma](https://github.com/kianenigma) | <img width="50" src="https://avatars2.githubusercontent.com/u/24908652?s=96&v=4"/></br>[konishi-t](https://github.com/konishi-t) |
| <img width="50" src="https://avatars2.githubusercontent.com/u/42319182?s=96&v=4"/></br>[marcdw1289](https://github.com/marcdw1289) | <img width="50" src="https://avatars2.githubusercontent.com/u/126279083?s=96&v=4"/></br>[matmoly](https://github.com/matmoly) | <img width="50" src="https://avatars2.githubusercontent.com/u/1788010?s=96&v=4"/></br>[maxtruxa](https://github.com/maxtruxa) | <img width="50" src="https://avatars2.githubusercontent.com/u/29300939?s=96&v=4"/></br>[mcejp](https://github.com/mcejp) |
| <img width="50" src="https://avatars2.githubusercontent.com/u/31054972?s=96&v=4"/></br>[saarantras](https://github.com/saarantras) | <img width="50" src="https://avatars2.githubusercontent.com/u/327998?s=96&v=4"/></br>[sif](https://github.com/sif) | <img width="50" src="https://avatars2.githubusercontent.com/u/765564?s=96&v=4"/></br>[taskcruncher](https://github.com/taskcruncher) | <img width="50" src="https://avatars2.githubusercontent.com/u/333944?s=96&v=4"/></br>[tateisu](https://github.com/tateisu) |
| | | | |
<!-- SPONSORS-GITHUB -->
<!-- TOC -->
@@ -153,7 +154,9 @@ A community maintained list of these distributions can be found here: [Unofficia
- [Changelog (iOS)](https://github.com/laurent22/joplin/blob/dev/readme/changelog_ios.md)
- [Changelog (CLI App)](https://github.com/laurent22/joplin/blob/dev/readme/changelog_cli.md)
- [Changelog (Server)](https://github.com/laurent22/joplin/blob/dev/readme/changelog_server.md)
- [Guiding principles](https://github.com/laurent22/joplin/blob/dev/readme/principles.md)
- [Stats](https://github.com/laurent22/joplin/blob/dev/readme/stats.md)
- [Brand guidelines](https://joplinapp.org/brand)
- [Donate](https://github.com/laurent22/joplin/blob/dev/readme/donate.md)
<!-- TOC -->
@@ -555,17 +558,17 @@ Current translations:
<img src="https://joplinapp.org/images/flags/country-4x3/be.png" width="16px"/> | Nederlands (België, Belgique, Belgien) | [nl_BE](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/nl_BE.po) | | 78%
<img src="https://joplinapp.org/images/flags/country-4x3/nl.png" width="16px"/> | Nederlands (Nederland) | [nl_NL](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/nl_NL.po) | [MHolkamp](mailto:mholkamp@users.noreply.github.com) | 87%
<img src="https://joplinapp.org/images/flags/country-4x3/no.png" width="16px"/> | Norwegian (Norge, Noreg) | [nb_NO](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/nb_NO.po) | [Mats Estensen](mailto:code@mxe.no) | 87%
<img src="https://joplinapp.org/images/flags/country-4x3/ir.png" width="16px"/> | Persian | [fa](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/fa.po) | [Kourosh Firoozbakht](mailto:kourox@protonmail.com) | 55%
<img src="https://joplinapp.org/images/flags/country-4x3/pl.png" width="16px"/> | Polski (Polska) | [pl_PL](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/pl_PL.po) | [X3NO](mailto:X3NO@disroot.org) | 90%
<img src="https://joplinapp.org/images/flags/country-4x3/ir.png" width="16px"/> | Persian | [fa](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/fa.po) | [Kourosh Firoozbakht](mailto:kourox@protonmail.com) | 54%
<img src="https://joplinapp.org/images/flags/country-4x3/pl.png" width="16px"/> | Polski (Polska) | [pl_PL](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/pl_PL.po) | [X3NO](mailto:X3NO@disroot.org) | 89%
<img src="https://joplinapp.org/images/flags/country-4x3/br.png" width="16px"/> | Português (Brasil) | [pt_BR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/pt_BR.po) | [Douglas Leão](mailto:djlsplays@gmail.com) | 87%
<img src="https://joplinapp.org/images/flags/country-4x3/pt.png" width="16px"/> | Português (Portugal) | [pt_PT](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/pt_PT.po) | [Diogo Caveiro](mailto:dcaveiro@yahoo.com) | 72%
<img src="https://joplinapp.org/images/flags/country-4x3/ro.png" width="16px"/> | Română | [ro](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ro.po) | [Cristi Duluta](mailto:cristi.duluta@gmail.com) | 50%
<img src="https://joplinapp.org/images/flags/country-4x3/si.png" width="16px"/> | Slovenian (Slovenija) | [sl_SI](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/sl_SI.po) | [Martin Korelič](mailto:martin.korelic@protonmail.com) | 80%
<img src="https://joplinapp.org/images/flags/country-4x3/si.png" width="16px"/> | Slovenian (Slovenija) | [sl_SI](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/sl_SI.po) | [Martin Korelič](mailto:martin.korelic@protonmail.com) | 79%
<img src="https://joplinapp.org/images/flags/country-4x3/se.png" width="16px"/> | Svenska | [sv](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/sv.po) | [Jonatan Nyberg](mailto:jonatan@autistici.org) | 99%
<img src="https://joplinapp.org/images/flags/country-4x3/th.png" width="16px"/> | Thai (ประเทศไทย) | [th_TH](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/th_TH.po) | | 36%
<img src="https://joplinapp.org/images/flags/country-4x3/vn.png" width="16px"/> | Tiếng Việt | [vi](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/vi.po) | | 77%
<img src="https://joplinapp.org/images/flags/country-4x3/tr.png" width="16px"/> | Türkçe (Türkiye) | [tr_TR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/tr_TR.po) | [Arda Kılıçdağı](mailto:arda@kilicdagi.com) | 99%
<img src="https://joplinapp.org/images/flags/country-4x3/ua.png" width="16px"/> | Ukrainian (Україна) | [uk_UA](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/uk_UA.po) | [Vyacheslav Andreykiv](mailto:vandreykiv@gmail.com) | 72%
<img src="https://joplinapp.org/images/flags/country-4x3/ua.png" width="16px"/> | Ukrainian (Україна) | [uk_UA](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/uk_UA.po) | [Vyacheslav Andreykiv](mailto:vandreykiv@gmail.com) | 71%
<img src="https://joplinapp.org/images/flags/country-4x3/gr.png" width="16px"/> | Ελληνικά (Ελλάδα) | [el_GR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/el_GR.po) | [Harris Arvanitis](mailto:xaris@tuta.io) | 87%
<img src="https://joplinapp.org/images/flags/country-4x3/ru.png" width="16px"/> | Русский (Россия) | [ru_RU](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ru_RU.po) | [Dmitriy K](mailto:dmitry@atsip.ru) | 99%
<img src="https://joplinapp.org/images/flags/country-4x3/rs.png" width="16px"/> | српски језик (Србија) | [sr_RS](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/sr_RS.po) | | 64%

View File

@@ -77,7 +77,7 @@
"eslint-plugin-react": "7.32.2",
"execa": "5.1.1",
"fs-extra": "11.1.1",
"glob": "8.1.0",
"glob": "10.2.7",
"gulp": "4.0.2",
"husky": "3.1.0",
"lerna": "3.22.1",
@@ -88,6 +88,7 @@
},
"dependencies": {
"@types/fs-extra": "11.0.1",
"eslint-plugin-github": "4.8.0",
"http-server": "14.1.1",
"node-gyp": "9.3.1",
"nodemon": "2.0.22"
@@ -95,6 +96,8 @@
"packageManager": "yarn@3.5.0",
"resolutions": {
"react-native-camera@4.2.1": "patch:react-native-camera@npm%3A4.2.1#./.yarn/patches/react-native-camera-npm-4.2.1-24b2600a7e.patch",
"react-native-vosk@0.1.12": "patch:react-native-vosk@npm%3A0.1.12#./.yarn/patches/react-native-vosk-npm-0.1.12-76b1caaae8.patch"
"react-native-vosk@0.1.12": "patch:react-native-vosk@npm%3A0.1.12#./.yarn/patches/react-native-vosk-npm-0.1.12-76b1caaae8.patch",
"eslint@8.39.0": "patch:eslint@npm%3A8.39.0#./.yarn/patches/eslint-npm-8.39.0-d92bace04d.patch",
"eslint@^8.13.0": "patch:eslint@npm%3A8.39.0#./.yarn/patches/eslint-npm-8.39.0-d92bace04d.patch"
}
}

View File

@@ -43,6 +43,7 @@ class LinkSelector {
for (let i = 0; i < lines.length; i++) {
const r = (lines[i] as any).matchAll(this.linkRegex_);
const matches = [...r];
// eslint-disable-next-line github/array-foreach -- Old code before rule was applied
matches.forEach((_e, n) => {
newLinkStore.push(
{

View File

@@ -146,6 +146,7 @@ class Application extends BaseApplication {
commands(uiType = null) {
if (!this.allCommandsLoaded_) {
// eslint-disable-next-line github/array-foreach -- Old code before rule was applied
fs.readdirSync(__dirname).forEach(path => {
if (path.indexOf('command-') !== 0) return;
if (path.endsWith('.test.js')) return;

View File

@@ -54,6 +54,7 @@ export default class BaseCommand {
return r[0];
}
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
public setDispatcher(fn: Function) {
this.dispatcher_ = fn;
}
@@ -63,6 +64,7 @@ export default class BaseCommand {
return this.dispatcher_(action);
}
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
public setStdout(fn: Function) {
this.stdout_ = fn;
}
@@ -71,6 +73,7 @@ export default class BaseCommand {
if (this.stdout_) this.stdout_(text);
}
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
public setPrompt(fn: Function) {
this.prompt_ = fn;
}

View File

@@ -49,6 +49,7 @@ function renderCommand(cmd) {
function getCommands() {
const output = [];
// eslint-disable-next-line github/array-foreach -- Old code before rule was applied
fs.readdirSync(__dirname).forEach(path => {
if (path.indexOf('command-') !== 0) return;
const ext = fileExtension(path);

View File

@@ -44,6 +44,7 @@ class Command extends BaseCommand {
return reject(new Error(`Invalid JSON passed to config --import: \n${error.message}.`));
}
if (settingsObj) {
// eslint-disable-next-line github/array-foreach -- Old code before rule was applied
Object.entries(settingsObj)
.forEach(([key, value]) => {
Setting.setValue(key, value);

View File

@@ -179,6 +179,7 @@ class Command extends BaseCommand {
const dirPaths = function(targetPath: string) {
const paths: string[] = [];
// eslint-disable-next-line github/array-foreach -- Old code before rule was applied
fs.readdirSync(targetPath).forEach((path: string) => {
paths.push(path);
});

View File

@@ -18,6 +18,7 @@ import { pathExists, writeFile } from 'fs-extra';
class Command extends BaseCommand {
private syncTargetId_: number = null;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
private releaseLockFn_: Function = null;
private oneDriveApiUtils_: any = null;

View File

@@ -65,6 +65,7 @@ export default class PluginRunner extends BasePluginRunner {
}
public async run(plugin: Plugin, sandbox: Global): Promise<void> {
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
return new Promise((resolve: Function, reject: Function) => {
const onStarted = () => {
plugin.off('started', onStarted);
@@ -85,6 +86,7 @@ export default class PluginRunner extends BasePluginRunner {
public async waitForSandboxCalls(): Promise<void> {
const startTime = Date.now();
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
return new Promise((resolve: Function, reject: Function) => {
const iid = setInterval(() => {
if (!Object.keys(this.activeSandboxCalls_).length) {

View File

@@ -1,5 +1,6 @@
import { _ } from '@joplin/lib/locale';
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
export default (cmd: any, stdout: Function, store: Function, gui: Function) => {
cmd.setStdout((text: string) => {
return stdout(text);

View File

@@ -3,6 +3,7 @@ import Folder from '@joplin/lib/models/Folder';
import BaseCommand from '../base-command';
import setupCommand from '../setupCommand';
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
export const setupCommandForTesting = (CommandClass: any, stdout: Function = null): BaseCommand => {
const command = new CommandClass();
setupCommand(command, stdout, null, null);

View File

@@ -35,15 +35,15 @@
],
"owner": "Laurent Cozic"
},
"version": "2.11.1",
"version": "2.12.0",
"bin": "./main.js",
"engines": {
"node": ">=10.0.0"
},
"dependencies": {
"@joplin/lib": "~2.11",
"@joplin/renderer": "~2.11",
"@joplin/utils": "~2.11",
"@joplin/lib": "~2.12",
"@joplin/renderer": "~2.12",
"@joplin/utils": "~2.12",
"aws-sdk": "2.1340.0",
"chalk": "4.1.2",
"compare-version": "0.1.2",
@@ -70,7 +70,7 @@
"yargs-parser": "21.1.1"
},
"devDependencies": {
"@joplin/tools": "~2.11",
"@joplin/tools": "~2.12",
"@types/fs-extra": "11.0.1",
"@types/jest": "29.5.1",
"@types/node": "18.15.13",

View File

@@ -12,7 +12,7 @@ import { newPluginScript } from '../../testUtils';
const testPluginDir = `${supportDir}/plugins`;
function newPluginService(appVersion: string = '1.4') {
function newPluginService(appVersion = '1.4') {
const runner = new PluginRunner();
const service = new PluginService();
service.initialize(

View File

@@ -7,7 +7,7 @@ import Setting from '@joplin/lib/models/Setting';
const testPluginDir = `${supportDir}/plugins`;
function newPluginService(appVersion: string = '1.4') {
function newPluginService(appVersion = '1.4') {
const runner = new PluginRunner();
const service = new PluginService();
service.initialize(

View File

@@ -1,7 +1,7 @@
{
"manifest_version": 2,
"name": "Joplin Web Clipper [DEV]",
"version": "2.11.2",
"version": "2.12.0",
"description": "Capture and save web pages and screenshots from your browser to Joplin.",
"homepage_url": "https://joplinapp.org",
"content_security_policy": "script-src 'self'; object-src 'self'",

View File

@@ -30,6 +30,7 @@ const dotenvFiles = [
// that have already been set. Variable expansion is supported in .env files.
// https://github.com/motdotla/dotenv
// https://github.com/motdotla/dotenv-expand
// eslint-disable-next-line github/array-foreach -- Old code before rule was applied
dotenvFiles.forEach(dotenvFile => {
if (fs.existsSync(dotenvFile)) {
require('dotenv-expand')(

View File

@@ -1,3 +1,5 @@
/* eslint-disable multiline-comment-style */
'use strict';
const fs = require('fs');

View File

@@ -130,6 +130,7 @@ checkBrowsers(paths.appPath, isInteractive)
openBrowser(urls.localUrlForBrowser);
});
// eslint-disable-next-line github/array-foreach -- Old code before rule was applied
['SIGINT', 'SIGTERM'].forEach((sig) => {
process.on(sig, () => {
devServer.close();

View File

@@ -26,7 +26,7 @@ export default class ElectronAppWrapper {
private isDebugMode_: boolean;
private profilePath_: string;
private win_: BrowserWindow = null;
private willQuitApp_: boolean = false;
private willQuitApp_ = false;
private tray_: any = null;
private buildDir_: string = null;
private rendererProcessQuitReply_: RendererProcessQuitReply = null;

View File

@@ -151,6 +151,7 @@ export default class InteropServiceHelper {
return `${filename}.${fileExtension}`;
}
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
public static async export(_dispatch: Function, module: Module, options: ExportNoteOptions = null) {
if (!options) options = {};

View File

@@ -80,7 +80,7 @@ const appDefaultState = createAppDefaultState(
class Application extends BaseApplication {
private checkAllPluginStartedIID_: any = null;
private initPluginServiceDone_: boolean = false;
private initPluginServiceDone_ = false;
public constructor() {
super();

View File

@@ -88,6 +88,7 @@ export class Bridge {
// Perhaps the easiest would be to patch electron-context-menu to
// support the renderer process again. Or possibly revert to an old
// version of electron-context-menu.
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
public setupContextMenu(_spellCheckerMenuItemsHandler: Function) {
require('electron-context-menu')({
allWindows: [this.window()],
@@ -255,6 +256,7 @@ export class Bridge {
return nativeTheme.shouldUseDarkColors;
}
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
public addEventListener(name: string, fn: Function) {
if (name === 'nativeThemeUpdated') {
nativeTheme.on('updated', fn);

View File

@@ -8,7 +8,7 @@ export const declaration: CommandDeclaration = {
export const runtime = (): CommandRuntime => {
return {
execute: async (_context: CommandContext, noteId: string, reverseRevIndex: number = 0) => {
execute: async (_context: CommandContext, noteId: string, reverseRevIndex = 0) => {
try {
const note = await RevisionService.instance().restoreNoteById(noteId, reverseRevIndex);
alert(RevisionService.instance().restoreSuccessMessage(note));

View File

@@ -20,6 +20,7 @@ interface Props {
iconName?: string;
level?: ButtonLevel;
className?: string;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
onClick?: Function;
color?: string;
iconAnimation?: string;

View File

@@ -6,8 +6,11 @@ const styled = require('styled-components').default;
interface Props {
backButtonTitle?: string;
hasChanges?: boolean;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
onCancelClick: Function;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
onSaveClick?: Function;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
onApplyClick?: Function;
}

View File

@@ -7,6 +7,7 @@ const styled = require('styled-components').default;
interface Props {
selection: string;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
onSelectionChange: Function;
sections: any[];
}

View File

@@ -45,9 +45,13 @@ const RepoApiErrorMessage = styled(StyledMessage)<any>`
interface Props {
value: any;
themeId: number;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
onChange: Function;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
renderLabel: Function;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
renderDescription: Function;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
renderHeader: Function;
}
@@ -146,6 +150,7 @@ export default function(props: Props) {
const pluginIds = await repoApi().canBeUpdatedPlugins(pluginItems.map(p => p.manifest), pluginService.appVersion);
if (cancelled) return;
const conv: Record<string, boolean> = {};
// eslint-disable-next-line github/array-foreach -- Old code before rule was applied
pluginIds.forEach(id => conv[id] = true);
setCanBeUpdatedPluginIds(conv);
}

View File

@@ -25,6 +25,7 @@ interface Props {
onSearchQueryChange(event: OnChangeEvent): void;
pluginSettings: PluginSettings;
onPluginSettingsChange(event: any): void;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
renderDescription: Function;
maxWidth: number;
repoApi(): RepositoryApi;

View File

@@ -13,6 +13,7 @@ export interface OnPluginSettingChangeEvent {
type OnPluginSettingChangeHandler = (event: OnPluginSettingChangeEvent)=> void;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
export default function(setInstallingPluginIds: Function, pluginSettings: PluginSettings, repoApi: Function, onPluginSettingsChange: OnPluginSettingChangeHandler, isUpdate: boolean) {
return useCallback(async (event: ItemEvent) => {
const pluginId = event.item.manifest.id;

View File

@@ -26,8 +26,10 @@ const DialogRoot = styled.div`
`;
interface Props {
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
renderContent: Function;
className?: string;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
onClose?: Function;
}

View File

@@ -2,7 +2,9 @@ import { useEffect, useState, useRef, useCallback } from 'react';
import { isInsideContainer } from '@joplin/lib/dom';
interface Props {
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
onOkButtonClick: Function;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
onCancelButtonClick: Function;
}

View File

@@ -16,6 +16,7 @@ import FolderIconBox from '../FolderIconBox';
interface Props {
themeId: number;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
dispatch: Function;
folderId: string;
parentId: string;

View File

@@ -5,6 +5,7 @@ import { AppState } from '../app.reducer';
interface Props {
tip: string;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
onClick: Function;
themeId: number;
style: any;

View File

@@ -5,6 +5,7 @@ interface Props {
themeId: number;
style: any;
iconName: string;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
onClick: Function;
}

View File

@@ -5,9 +5,12 @@ interface Props {
itemHeight: number;
items: any[];
disabled?: boolean;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
onKeyDown?: Function;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
itemRenderer: Function;
className?: string;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
onNoteDrop?: Function;
}

View File

@@ -57,6 +57,7 @@ interface Props {
pluginHtmlContents: PluginHtmlContents;
pluginsLoaded: boolean;
hasNotesBeingSaved: boolean;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
dispatch: Function;
mainLayout: LayoutItem;
style: any;
@@ -121,6 +122,7 @@ class MainScreenComponent extends React.Component<Props, State> {
private isPrinting_: boolean;
private styleKey_: string;
private styles_: any;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
private promptOnClose_: Function;
public constructor(props: Props) {
@@ -514,6 +516,7 @@ class MainScreenComponent extends React.Component<Props, State> {
return this.styles_;
}
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
private renderNotificationMessage(message: string, callForAction: string, callForActionHandler: Function, callForAction2: string = null, callForActionHandler2: Function = null) {
const theme = themeStyle(this.props.themeId);
const urlStyle: any = { color: theme.colorWarnUrl, textDecoration: 'underline' };
@@ -846,9 +849,7 @@ class MainScreenComponent extends React.Component<Props, State> {
{this.renderPluginDialogs()}
{noteContentPropertiesDialogOptions.visible && <NoteContentPropertiesDialog markupLanguage={noteContentPropertiesDialogOptions.markupLanguage} themeId={this.props.themeId} onClose={this.noteContentPropertiesDialog_close} text={noteContentPropertiesDialogOptions.text}/>}
{notePropertiesDialogOptions.visible && <NotePropertiesDialog themeId={this.props.themeId} noteId={notePropertiesDialogOptions.noteId} onClose={this.notePropertiesDialog_close} onRevisionLinkClick={notePropertiesDialogOptions.onRevisionLinkClick} />}
{/* @ts-ignore */}
{shareNoteDialogOptions.visible && <ShareNoteDialog themeId={this.props.themeId} noteIds={shareNoteDialogOptions.noteIds} onClose={this.shareNoteDialog_close} />}
{/* @ts-ignore */}
{shareFolderDialogOptions.visible && <ShareFolderDialog themeId={this.props.themeId} folderId={shareFolderDialogOptions.folderId} onClose={this.shareFolderDialog_close} />}
<PromptDialog autocomplete={promptOptions && 'autocomplete' in promptOptions ? promptOptions.autocomplete : null} defaultValue={promptOptions && promptOptions.value ? promptOptions.value : ''} themeId={this.props.themeId} style={styles.prompt} onClose={this.promptOnClose_} label={promptOptions ? promptOptions.label : ''} description={promptOptions ? promptOptions.description : null} visible={!!this.state.promptOptions} buttons={promptOptions && 'buttons' in promptOptions ? promptOptions.buttons : null} inputType={promptOptions && 'inputType' in promptOptions ? promptOptions.inputType : null} />

View File

@@ -29,6 +29,7 @@ export const runtime = (): CommandRuntime => {
} else if (uiType === UiType.CommandPalette) {
menuItemById('commandPalette').click();
} else if (uiType === UiType.ControlledApi) {
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
return new Promise((resolve: Function, reject: Function) => {
const menuItem = PluginManager.instance().menuItems().find((i: any) => i.id === 'controlledApi');
menuItem.userData = {

View File

@@ -11,7 +11,7 @@ export const declaration: CommandDeclaration = {
export const runtime = (): CommandRuntime => {
return {
execute: async (_context: CommandContext, body: string = '', isTodo: boolean = false) => {
execute: async (_context: CommandContext, body = '', isTodo = false) => {
const folderId = Setting.value('activeFolderId');
if (!folderId) return;

View File

@@ -9,7 +9,7 @@ export const declaration: CommandDeclaration = {
export const runtime = (): CommandRuntime => {
return {
execute: async (_context: CommandContext, body: string = '') => {
execute: async (_context: CommandContext, body = '') => {
return CommandService.instance().execute('newNote', body, true);
},
enabledCondition: 'oneFolderSelected && !inConflictFolder',

View File

@@ -28,6 +28,7 @@ export const runtime = (): CommandRuntime => {
const languages = state.settings['spellChecker.languages'];
if (languages.length === 0) return null;
const s: string[] = [];
// eslint-disable-next-line github/array-foreach -- Old code before rule was applied
languages.forEach((language: string) => {
s.push(language.split('-')[0]);
});

View File

@@ -10,7 +10,7 @@ export const declaration: CommandDeclaration = {
export const runtime = (): CommandRuntime => {
return {
execute: async (_context: CommandContext, field?: string | Array<any>, reverse?: boolean) => {
execute: async (_context: CommandContext, field?: string | any[], reverse?: boolean) => {
// field: Sort order's field. undefined means switching a field.
// reverse: whether the sort order is reversed or not. undefined means toggling.
//

View File

@@ -14,6 +14,7 @@ import { PasswordInput } from '../PasswordInput/PasswordInput';
interface Props {
themeId: number;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
dispatch: Function;
}

View File

@@ -54,6 +54,7 @@ function getPluginCommandNames(plugins: PluginStates): string[] {
return output;
}
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
function createPluginMenuTree(label: string, menuItems: MenuItem[], onMenuItemClick: Function) {
const output: any = {
label: label,
@@ -108,6 +109,7 @@ const useSwitchProfileMenuItems = (profileConfig: ProfileConfig, menuItemDic: an
};
interface Props {
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
dispatch: Function;
menuItemProps: any;
routeName: string;

View File

@@ -9,6 +9,7 @@ interface MultiNoteActionsProps {
themeId: number;
selectedNoteIds: string[];
notes: any[];
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
dispatch: Function;
watchedNoteFiles: string[];
plugins: PluginStates;

View File

@@ -10,6 +10,7 @@ interface NoteContentPropertiesDialogProps {
themeId: number;
text: string;
markupLanguage: number;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
onClose: Function;
}
@@ -28,6 +29,7 @@ function markupToHtml() {
return markupToHtml_;
}
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
function countElements(text: string, wordSetter: Function, characterSetter: Function, characterNoSpaceSetter: Function, lineSetter: Function) {
Countable.count(text, (counter: any) => {
wordSetter(counter.words);

View File

@@ -62,6 +62,7 @@ function CodeMirror(props: NoteBodyEditorProps, ref: any) {
const editorRef = useRef(null);
const rootRef = useRef(null);
const webviewRef = useRef(null);
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
const props_onChangeRef = useRef<Function>(null);
props_onChangeRef.current = props.onChange;
@@ -863,6 +864,7 @@ function CodeMirror(props: NoteBodyEditorProps, ref: any) {
}));
}
// eslint-disable-next-line github/array-foreach -- Old code before rule was applied
menuUtils.pluginContextMenuItems(props.plugins, MenuItemLocation.EditorContextMenu).forEach((item: any) => {
menu.append(new MenuItem(item));
});

View File

@@ -30,7 +30,7 @@ export default function useKeymap(CodeMirror: any) {
}
// Converts a command of the form editor.command to just command
function editorCommandToCodeMirror(command: String) {
function editorCommandToCodeMirror(command: string) {
return command.slice(7); // 7 is the length of editor.
}
@@ -38,7 +38,7 @@ export default function useKeymap(CodeMirror: any) {
// CodeMirror requires a - between keys while Electron want's a +
// CodeMirror doesn't recognize Option (it uses Alt instead)
// CodeMirror requires Shift to be first
function normalizeAccelerator(accelerator: String) {
function normalizeAccelerator(accelerator: string) {
const command = accelerator.replace(/\+/g, '-').replace('Option', 'Alt');
// From here is taken out of codemirror/lib/codemirror.js
const parts = command.split(/-(?!$)/);
@@ -89,6 +89,7 @@ export default function useKeymap(CodeMirror: any) {
function registerKeymap() {
const keymapItems = KeymapService.instance().getKeymapItems();
// Register all commands with the codemirror editor
// eslint-disable-next-line github/array-foreach -- Old code before rule was applied
keymapItems.forEach((key) => { registerJoplinCommand(key); });
}

View File

@@ -1,6 +1,7 @@
import { useCallback, useRef } from 'react';
import shim from '@joplin/lib/shim';
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
export default function useScrollHandler(editorRef: any, webviewRef: any, onScroll: Function) {
const scrollTimeoutId_ = useRef<any>(null);
const scrollPercent_ = useRef(0);

View File

@@ -905,9 +905,11 @@ const TinyMCE = (props: NoteBodyEditorProps, ref: any) => {
// Need to save the onChange handler to a ref to make sure
// we call the current one from setTimeout.
// https://github.com/facebook/react/issues/14010#issuecomment-433788147
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
const props_onChangeRef = useRef<Function>();
props_onChangeRef.current = props.onChange;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
const prop_htmlToMarkdownRef = useRef<Function>();
prop_htmlToMarkdownRef.current = props.htmlToMarkdown;

View File

@@ -8,12 +8,12 @@ module.exports = [
"de",
"el",
"eo",
"es",
"es_ES",
"es_MX",
"es",
"eu",
"fa_IR",
"fa",
"fa_IR",
"fi",
"fr_FR",
"gl",
@@ -21,8 +21,8 @@ module.exports = [
"hr",
"hu_HU",
"id",
"it_IT",
"it",
"it_IT",
"ja",
"kk",
"ko_KR",
@@ -32,18 +32,18 @@ module.exports = [
"pl",
"pt_BR",
"pt_PT",
"ro_RO",
"ro",
"ro_RO",
"ru",
"sk",
"sl_SI",
"sl",
"sl_SI",
"sv_SE",
"ta_IN",
"ta",
"ta_IN",
"th_TH",
"tr_TR",
"tr",
"tr_TR",
"uk",
"vi",
"zh_CN",

View File

@@ -47,7 +47,7 @@ function findBlockSource(node: any): SourceInfo {
};
}
function newBlockSource(language: string = '', content: string = '', previousSource: SourceInfo = null): SourceInfo {
function newBlockSource(language = '', content = '', previousSource: SourceInfo = null): SourceInfo {
let fence = '```';
if (language === 'katex') {
@@ -77,6 +77,7 @@ function editableInnerHtml(html: string): string {
return editable[0].innerHTML;
}
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
export default function openEditDialog(editor: any, markupToHtml: any, dispatchDidUpdate: Function, editable: any) {
const source = editable ? findBlockSource(editable) : newBlockSource();

View File

@@ -41,6 +41,7 @@ interface ContextMenuActionOptions {
const contextMenuActionOptions: ContextMenuActionOptions = { current: null };
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
export default function(editor: any, plugins: PluginStates, dispatch: Function) {
useEffect(() => {
if (!editor) return () => {};

View File

@@ -3,6 +3,7 @@ import shim from '@joplin/lib/shim';
interface HookDependencies {
editor: any;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
onScroll: Function;
}

View File

@@ -30,7 +30,8 @@ async function saveFileData(data: any, filename: string) {
await writeFile(newFilePath, data);
}
export async function openItemById(itemId: string, dispatch: Function, hash: string = '') {
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
export async function openItemById(itemId: string, dispatch: Function, hash = '') {
const item = await BaseItem.loadItemById(itemId);
@@ -68,6 +69,7 @@ export async function openItemById(itemId: string, dispatch: Function, hash: str
}
}
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
export function menuItems(dispatch: Function): ContextMenuItems {
return {
open: {
@@ -194,6 +196,7 @@ export function menuItems(dispatch: Function): ContextMenuItems {
};
}
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
export default async function contextMenu(options: ContextMenuOptions, dispatch: Function) {
const menu = new Menu();

View File

@@ -17,14 +17,18 @@ export interface ContextMenuOptions {
linkToCopy: string;
textToCopy: string;
htmlToCopy: string;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
insertContent: Function;
isReadOnly?: boolean;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
fireEditorEvent: Function;
}
export interface ContextMenuItem {
label: string;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
onAction: Function;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
isActive: Function;
}

View File

@@ -18,6 +18,7 @@ export interface NoteEditorProps {
// style: any;
noteId: string;
themeId: number;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
dispatch: Function;
selectedNoteIds: string[];
selectedFolderId: string;
@@ -59,9 +60,11 @@ export interface NoteBodyEditorProps {
onMessage(event: any): void;
onScroll(event: any): void;
markupToHtml: (markupLanguage: MarkupLanguage, markup: string, options: MarkupToHtmlOptions)=> Promise<RenderResult>;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
htmlToMarkdown: Function;
allAssets: (markupLanguage: MarkupLanguage, options: AllAssetsOptions)=> Promise<RenderResultPluginAsset[]>;
disabled: boolean;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
dispatch: Function;
noteToolbar: any;
setLocalSearchResultCount(count: number): void;
@@ -70,6 +73,7 @@ export interface NoteBodyEditorProps {
keyboardMode: string;
resourceInfos: ResourceInfos;
locale: string;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
onDrop: Function;
noteToolbarButtonInfos: ToolbarButtonInfo[];
plugins: PluginStates;

View File

@@ -28,6 +28,7 @@ interface HookDependencies {
onAfterLoad(event: OnLoadEvent): void;
}
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
function installResourceChangeHandler(onResourceChangeHandler: Function) {
ResourceFetcher.instance().on('downloadComplete', onResourceChangeHandler);
ResourceFetcher.instance().on('downloadStarted', onResourceChangeHandler);
@@ -35,6 +36,7 @@ function installResourceChangeHandler(onResourceChangeHandler: Function) {
ResourceEditWatcher.instance().on('resourceChange', onResourceChangeHandler);
}
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
function uninstallResourceChangeHandler(onResourceChangeHandler: Function) {
ResourceFetcher.instance().off('downloadComplete', onResourceChangeHandler);
ResourceFetcher.instance().off('downloadStarted', onResourceChangeHandler);

View File

@@ -7,6 +7,7 @@ import ResourceFetcher from '@joplin/lib/services/ResourceFetcher';
import { reg } from '@joplin/lib/registry';
const bridge = require('@electron/remote').require('./bridge').default;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
export default function useMessageHandler(scrollWhenReady: any, setScrollWhenReady: Function, editorRef: any, setLocalSearchResultCount: Function, dispatch: Function, formNote: FormNote) {
return useCallback(async (event: any) => {
const msg = event.channel ? event.channel : '';

View File

@@ -24,6 +24,7 @@ function defaultSearchMarkers(): SearchMarkers {
}
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
export default function useSearchMarkers(showLocalSearch: boolean, localSearchMarkerOptions: Function, searches: any[], selectedSearchId: string, highlightedWords: any[] = []) {
return useMemo((): SearchMarkers => {
if (showLocalSearch) return localSearchMarkerOptions();

View File

@@ -15,15 +15,20 @@ const commandsWithDependencies = [
interface HookDependencies {
formNote: FormNote;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
setShowLocalSearch: Function;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
dispatch: Function;
noteSearchBarRef: any;
editorRef: any;
titleInputRef: any;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
saveNoteAndWait: Function;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
setFormNote: Function;
}
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
function editorCommandRuntime(declaration: CommandDeclaration, editorRef: any, setFormNote: Function): CommandRuntime {
const markdownEditorOnly = !Object.keys(joplinCommandToTinyMceCommands).includes(declaration.name);

View File

@@ -5,6 +5,7 @@ export interface Props {
themeId: any;
selectedNoteIds: string[];
notes: NoteEntity[];
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
dispatch: Function;
watchedNoteFiles: any[];
plugins: PluginStates;

View File

@@ -13,7 +13,9 @@ const formatcoords = require('formatcoords');
interface Props {
noteId: string;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
onClose: Function;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
onRevisionLinkClick: Function;
themeId: number;
}
@@ -210,6 +212,7 @@ class NotePropertiesDialog extends React.Component<Props, State> {
public async saveProperty() {
if (!this.state.editedKey) return;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
return new Promise((resolve: Function) => {
const newFormNote = { ...this.state.formNote };
@@ -234,6 +237,7 @@ class NotePropertiesDialog extends React.Component<Props, State> {
}
public async cancelProperty() {
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
return new Promise((resolve: Function) => {
this.okButton.current.focus();
this.setState({

View File

@@ -22,6 +22,7 @@ import shared from '@joplin/lib/components/shared/note-screen-shared';
interface Props {
themeId: number;
noteId: string;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
onBack: Function;
customCss: string;
}
@@ -36,6 +37,7 @@ interface State {
class NoteRevisionViewerComponent extends React.PureComponent<Props, State> {
private viewerRef_: any;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
private helpButton_onClick: Function;
public constructor(props: Props) {

View File

@@ -4,9 +4,13 @@ import { _ } from '@joplin/lib/locale';
interface Props {
themeId: number;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
onNext: Function;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
onPrevious: Function;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
onClose: Function;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
onChange: Function;
query: string;
searching: boolean;

View File

@@ -3,7 +3,9 @@ import * as React from 'react';
import { reg } from '@joplin/lib/registry';
interface Props {
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
onDomReady: Function;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
onIpcMessage: Function;
viewerStyle: any;
contentMaxWidth?: number;
@@ -12,8 +14,8 @@ interface Props {
export default class NoteTextViewerComponent extends React.Component<Props, any> {
private initialized_: boolean = false;
private domReady_: boolean = false;
private initialized_ = false;
private domReady_ = false;
private webviewRef_: any;
private webviewListeners_: any = null;

View File

@@ -27,6 +27,7 @@ const IFrame = styled.iframe`
interface Props {
themeId: number;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
dispatch: Function;
resource: any;
pageNo: number;

View File

@@ -12,6 +12,7 @@ interface Props {
visible: boolean;
style: any;
buttons: any[];
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
onClose: Function;
inputType: string;
description: string;
@@ -26,7 +27,7 @@ export default class PromptDialog extends React.Component<Props, any> {
private focusInput_: boolean;
private styles_: any;
private styleKey_: string;
private menuIsOpened_: boolean = false;
private menuIsOpened_ = false;
public constructor(props: Props) {
super(props);

View File

@@ -20,6 +20,7 @@ interface Props {
onResize(event: OnResizeEvent): void;
width?: number;
height?: number;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
renderItem: Function;
onMoveButtonClick(event: MoveButtonClickEvent): void;
moveMode: boolean;
@@ -32,6 +33,7 @@ function itemVisible(item: LayoutItem, moveMode: boolean) {
return item.visible !== false;
}
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
function renderContainer(item: LayoutItem, parent: LayoutItem | null, sizes: LayoutItemSizes, resizedItemMaxSize: Size | null, onResizeStart: Function, onResize: Function, onResizeStop: Function, children: any[], isLastChild: boolean, moveMode: boolean): any {
const style: any = {
display: itemVisible(item, moveMode) ? 'flex' : 'none',

View File

@@ -8,6 +8,7 @@ export default function iterateItems(layout: LayoutItem, callback: ItemItemCallb
const result = callback(0, layout, null);
if (result === false) return;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
function recurseFind(item: LayoutItem, callback: Function): boolean {
if (item.children) {
for (let childIndex = 0; childIndex < item.children.length; childIndex++) {

View File

@@ -135,7 +135,7 @@ export function calculateMaxSizeAvailableForItem(item: LayoutItem, parent: Layou
return availableSize;
}
export default function useLayoutItemSizes(layout: LayoutItem, makeAllVisible: boolean = false) {
export default function useLayoutItemSizes(layout: LayoutItem, makeAllVisible = false) {
return useMemo(() => {
let sizes: LayoutItemSizes = {};

View File

@@ -16,6 +16,7 @@ interface Style {
interface Props {
themeId: number;
style: Style;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
dispatch: Function;
}

View File

@@ -34,6 +34,7 @@ const bridge = require('@electron/remote').require('./bridge').default;
interface Props {
themeId: number;
appState: string;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
dispatch: Function;
size: Size;
zoomFactor: number;
@@ -51,6 +52,7 @@ interface ModalDialogProps {
interface RegisteredDialogProps {
themeId: number;
key: string;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
dispatch: Function;
}

View File

@@ -21,6 +21,7 @@ export const Root = styled.div`
interface Props {
inputRef?: any;
notesParentType: string;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
dispatch?: Function;
selectedNoteId: string;
isFocused?: boolean;
@@ -32,6 +33,7 @@ function SearchBar(props: Props) {
const searchId = useRef(uuid.create());
useEffect(() => {
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
function search(searchId: string, query: string, dispatch: Function) {
dispatch({
type: 'SEARCH_UPDATE',

View File

@@ -366,4 +366,4 @@ const mapStateToProps = (state: State) => {
};
};
export default connect(mapStateToProps)(ShareFolderDialog as any);
export default connect(mapStateToProps)(ShareFolderDialog);

Some files were not shown because too many files have changed in this diff Show More