Skip to content

Commit b3c71a5

Browse files
authored
Merge pull request #101 from unfoldingWord/feature-mannycolon-218
LGTM
2 parents 051a841 + 0bc0a3d commit b3c71a5

File tree

6 files changed

+87
-6
lines changed

6 files changed

+87
-6
lines changed

coverage/shields.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"message":"47.31%","label":"Integration Tests","schemaVersion":1}
1+
{"message":"46.38%","label":"Integration Tests","schemaVersion":1}

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "gitea-react-toolkit",
3-
"version": "1.9.3",
3+
"version": "1.10.0-rc.20",
44
"license": "MIT",
55
"description": "A Gitea API React Toolkit Component Library",
66
"homepage": "https://gitea-react-toolkit.netlify.com/",

src/components/file/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
export { default as FileCard } from './FileCard';
22
export { default as FileForm } from './FileForm';
33
export { default as useFile } from './useFile';
4+
export { default as useEdit } from './useEdit';
45
export * from './File.context';

src/components/file/useEdit.js

+78
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
import { useState } from 'react';
2+
import { updateContent } from '../..';
3+
4+
export default function useEdit({
5+
sha,
6+
repo,
7+
owner,
8+
token,
9+
config,
10+
branch,
11+
author,
12+
content,
13+
message,
14+
filepath,
15+
}) {
16+
const [{ isEditing, isError, error, editResponse }, setState] = useState({
17+
editResponse: null,
18+
isEditing: false,
19+
isError: false,
20+
error: null,
21+
})
22+
const { name: tokenid } = token || {}
23+
const _message = message || `Edit '${filepath}' using '${tokenid}'`;
24+
25+
async function onSaveEdit(_branch) {
26+
try {
27+
if (content) {
28+
setState((prevState) => ({
29+
...prevState,
30+
editResponse: null,
31+
isEditing: true,
32+
isError: false,
33+
}))
34+
35+
const response = await updateContent({
36+
sha,
37+
repo,
38+
owner,
39+
config,
40+
author,
41+
content,
42+
filepath,
43+
message: _message,
44+
// Use branch passed to function or branch passed to custom hook.
45+
branch: _branch || branch,
46+
});
47+
48+
setState((prevState) => ({
49+
...prevState,
50+
editResponse: response,
51+
}))
52+
return true
53+
} else {
54+
console.warn('Content value is empty')
55+
}
56+
} catch (error) {
57+
setState((prevState) => ({
58+
...prevState,
59+
isError: true,
60+
error,
61+
}))
62+
return false
63+
} finally {
64+
setState((prevState) => ({
65+
...prevState,
66+
isEditing: false,
67+
}))
68+
}
69+
}
70+
71+
return {
72+
error,
73+
isError,
74+
isEditing,
75+
onSaveEdit,
76+
editResponse,
77+
}
78+
}

src/core/gitea-api/repos/contents/contents.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,9 @@ export const updateContent = async ({
130130
url, payload: _payload, config,
131131
});
132132
contentObject = response.content;
133-
} catch {
133+
} catch (e) {
134+
console.warn('Branch doesnt exists. Thus, creating new branch', e);
135+
134136
const _payload = payload({
135137
new_branch: branch, content, message, author, sha,
136138
});

yarn.lock

+3-3
Original file line numberDiff line numberDiff line change
@@ -4381,9 +4381,9 @@ caniuse-api@^3.0.0:
43814381
lodash.uniq "^4.5.0"
43824382

43834383
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30000989, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001181:
4384-
version "1.0.30001204"
4385-
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001204.tgz#256c85709a348ec4d175e847a3b515c66e79f2aa"
4386-
integrity sha512-JUdjWpcxfJ9IPamy2f5JaRDCaqJOxDzOSKtbdx4rH9VivMd1vIzoPumsJa9LoMIi4Fx2BV2KZOxWhNkBjaYivQ==
4384+
version "1.0.30001245"
4385+
resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001245.tgz"
4386+
integrity sha512-768fM9j1PKXpOCKws6eTo3RHmvTUsG9UrpT4WoREFeZgJBTi4/X9g565azS/rVUGtqb8nt7FjLeF5u4kukERnA==
43874387

43884388
capture-exit@^2.0.0:
43894389
version "2.0.0"

0 commit comments

Comments
 (0)