Skip to content

Commit

Permalink
works
Browse files Browse the repository at this point in the history
  • Loading branch information
igorperic17 committed Nov 9, 2023
1 parent 923b744 commit b3371dd
Show file tree
Hide file tree
Showing 4 changed files with 104 additions and 73 deletions.
2 changes: 1 addition & 1 deletion flags.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"components": {
"frontend/widget/obrigado-react.src.bos-landing-page": {
"code": "const contract = \"obrigado.testnet\";\nconst tasks = Near.view(contract, \"get_tasks_from_queue\", {})\n\nconst fontUrl = `https://ipfs.io/ipfs/bafkreicrs3gh7f77yhpw4xiejx35cd56jcczuhvqbwkn77g2ztkrjejopa`;\n\nconst css = `\n\nbody {\n display: inline-block;\n}\n\n@font-face {\n font-family: \"Pixter\";\n src: url(\"${fontUrl}\");\n}\n\na, a:focus, a:visited, a:hover {\n color: white !important;\n}\n\n.apps {\n margin-top: 32px;\n display: grid;\n gap: 16px;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n}\n\n.flex-right {\n padding-left: 16px;\n > p {\n margin-bottom: 2px;\n }\n > .subtle {\n font-size: 0.8rem;\n }\n}\n.gray {\n color: #888 !important;\n}\n\n.header {\n align-content: center;\n flex: 1;\n margin: 100px auto auto auto;\n overflow: hidden;\n height: 600px;\n background-image: url('https://bafybeicc3wlqrkisg2k7ibwss5wlusxfoq7intpgwmhcm4r7ck27fd5eym.ipfs.nftstorage.link/');\n background-size: cover;\n > div {\n padding: 32px;\n h1 {\n font-size: 3rem;\n }\n h2 {\n color: #ddd;\n }\n > div {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n height: 100%;\n }\n }\n}\n\n.logo {\n width: 350px;\n margin: 200px auto auto auto;\n height: 80px;\n}\n\n .main {\n padding: 32px;\n p {\n color: #ddd;\n }\n }\n\n footer {\n padding-top: 2rem;\n height: 2rem;\n}\n\nfooter a, span {\n color: rgba(255, 255, 255, 0.2);\n}\n\n\n@media only screen and (max-width: 700px) {\n .header {\n flex-direction: column;\n }\n .header-left {\n transform: skew(0);\n }\n .header-left, .header-right {\n width: 100%;\n margin-left: 0;\n border: none;\n }\n .header-content-right {\n top: 260px;\n }\n .noise {\n height: 520px;\n }\n}\n`;\n\nif (!state.theme) {\n State.update({\n theme: styled.div`\n font-family: Pixter;\n background: black;\n color: white;\n ${css}\n`,\n });\n}\nconst Theme = state.theme;\n\n// const featured = [\n// {\n// widgetSrc: \"mm-near.near/widget/zkSyncExp\",\n// accountId: \"mm-near.near\",\n// widgetName: \"zkSyncExp\",\n// alt: \"zkSyncExp\",\n// },\n// ];\nconst featured = [];\n\nState.init({ tasks: [], task_bounty: Number(10), task_url: \"\"});\n\nconst onBountyInputChange = ({ target }) => {\n State.update({ task_bounty: Number(target.value) });\n};\nconst onTaskUrlInputChange = ({ target }) => {\n State.update({ task_url: target.value });\n console.log(tasks)\n};\n\n// const onBtnClick = () => {\n// if (!state.new_greeting) {\n// return;\n// }\n\n// Near.call(contract, \"set_greeting\", {\n// greeting: state.new_greeting,\n// });\n// };\n\nconst onSubmitTaskClick = () => {\n Near.call(contract, \"create_task\", {\n repository_url: state.task_url, \n bounty: state.task_bounty\n });\n};\n\nconst onClearQueueClick = () => {\n Near.call(contract, \"clear_queue\", {});\n};\nconst onRefreshQueueClick = () => {\n const res = Near.call(contract, \"get_tasks_from_queue\", {});\n State.update({ tasks: res });\n};\n\n\n// const greeting = Near.call(contract, \"add_task\", {});\n\nconst submitTaskComponent = (\n <>\n <div className=\"mb-2 center flex\">\n <div className=\"border border-black p-3\">\n <label>Task</label>\n <input className=\"p-2 m-2 rounded-full\" placeholder=\"Wokspace location\" onChange={onTaskUrlInputChange} value={state.task_url}/>\n <input className=\"p-2 m-2 rounded-full\" placeholder=\"Bounty\" onChange={onBountyInputChange} value={state.bounty}/>\n <button className=\"btn btn-primary mt-2\" onClick={onSubmitTaskClick}>\n Submit\n </button>\n <button className=\"btn btn-primary mt-2\" onClick={onClearQueueClick}>\n Clear Queue\n </button>\n </div>\n </div>\n </>\n);\n\nconst notLoggedInWarning = () => {\n return (<>\n <button class=\"btn btn-primary mt-2\" onClick={onBtnClick}>\n Connect wallet\n </button>\n </>);\n};\n\nreturn (\n <Theme>\n <div class=\"header\">\n <img\n class=\"logo\"\n src=\"https://bafkreidsq3r5xof4umfa5mmsfem2kmsfh2nyxo22e5kj7bsqtr6pl3zdke.ipfs.nftstorage.link/\"\n />\n <p>\n Start earning crypto tokens for your hard work today! Join now and\n prosper with Web3 technology.\n </p>\n {context.accountId ? submitTaskComponent : notLoggedInWarning}\n </div>\n\n <div class=\"main\">\n {/* <h3>Search tasks</h3>\n <p class=\"gray\">\n Discover a range of fully decentralized frontends that leverage the\n power of BOS.\n </p> */}\n\n <div class=\"mt-5\">\n <h3>Task Queue</h3>\n </div>\n <div class=\"apps\">\n\n <button className=\"btn btn-primary mt-2\" onClick={onRefreshQueueClick}>\n Refresh Task Queue\n </button>\n {state.tasks?.map((component, i) => (\n <div key={i} class=\"widget\">\n <div class=\"flex\">\n <a href={`#/${component.widgetSrc}`} target=\"_blank\">\n <div class=\"image-parent\">\n <Widget\n src=\"mob.near/widget/WidgetImage\"\n props={{\n accountId: component.accountId,\n widgetName: component.widgetName,\n alt: component.widgetName,\n className,\n style: {},\n fallbackUrl:\n \"https://ipfs.near.social/ipfs/bafkreido7gsk4dlb63z3s5yirkkgrjs2nmyar5bxyet66chakt2h5jve6e\",\n }}\n />\n <div class=\"shadow\"></div>\n <div class=\"eth-logo\">\n <img\n src={\n \"https://ipfs.near.social/ipfs/bafkreibkkypb3zybzlwfotwa6tdmelalfnfucmvgzzeqwge4e75mkpq6dq\"\n }\n />\n </div>\n </div>\n </a>\n <div class=\"flex-right\">\n <p>{component.widgetName}</p>\n <p class=\"subtle gray\">Ethereum</p>\n </div>\n </div>\n <p>{component.description}</p>\n\n <a\n href={`#/mob.near/widget/WidgetSource?src=${component.widgetSrc}`}\n target=\"_blank\"\n >\n <i className=\"bi bi-file-earmark-code me-1\"></i>Source\n </a>\n </div>\n ))}\n </div>\n </div>\n\n <div class=\"footer\">\n <div className=\"text-center\">\n <a href=\"/#/thebos.near/widget/Terms\">Terms of Use</a> <span>|</span>{\" \"}\n <a href=\"/#/thebos.near/widget/Privacy\">Privacy Policy</a>\n </div>\n </div>\n </Theme>\n);\n"
"code": "const contract = \"obrigado.testnet\";\n// const tasks = Near.view(contract, \"get_tasks_from_queue\", {})\n\nconst fontUrl = `https://ipfs.io/ipfs/bafkreicrs3gh7f77yhpw4xiejx35cd56jcczuhvqbwkn77g2ztkrjejopa`;\n\nconst css = `\n\nbody {\n display: inline-block;\n}\n\n@font-face {\n font-family: \"Pixter\";\n src: url(\"${fontUrl}\");\n}\n\na, a:focus, a:visited, a:hover {\n color: white !important;\n}\n\n.apps {\n margin-top: 32px;\n display: grid;\n gap: 16px;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n}\n\n.flex-right {\n padding-left: 16px;\n > p {\n margin-bottom: 2px;\n }\n > .subtle {\n font-size: 0.8rem;\n }\n}\n.gray {\n color: #888 !important;\n}\n\n.header {\n align-content: center;\n flex: 1;\n margin: 100px auto auto auto;\n overflow: hidden;\n height: 600px;\n background-image: url('https://bafybeicc3wlqrkisg2k7ibwss5wlusxfoq7intpgwmhcm4r7ck27fd5eym.ipfs.nftstorage.link/');\n background-size: cover;\n > div {\n padding: 32px;\n h1 {\n font-size: 3rem;\n }\n h2 {\n color: #ddd;\n }\n > div {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n height: 100%;\n }\n }\n}\n\n.logo {\n width: 350px;\n margin: 200px auto auto auto;\n height: 80px;\n}\n\n .main {\n padding: 32px;\n p {\n color: #ddd;\n }\n }\n\n footer {\n padding-top: 2rem;\n height: 2rem;\n}\n\nfooter a, span {\n color: rgba(255, 255, 255, 0.2);\n}\n\n\n@media only screen and (max-width: 700px) {\n .header {\n flex-direction: column;\n }\n .header-left {\n transform: skew(0);\n }\n .header-left, .header-right {\n width: 100%;\n margin-left: 0;\n border: none;\n }\n .header-content-right {\n top: 260px;\n }\n .noise {\n height: 520px;\n }\n}\n`;\n\nif (!state.theme) {\n State.update({\n theme: styled.div`\n font-family: Pixter;\n background: black;\n color: white;\n ${css}\n`,\n });\n}\nconst Theme = state.theme;\n\n// const featured = [\n// {\n// widgetSrc: \"mm-near.near/widget/zkSyncExp\",\n// accountId: \"mm-near.near\",\n// widgetName: \"zkSyncExp\",\n// alt: \"zkSyncExp\",\n// },\n// ];\nconst featured = [];\n\nState.init({ tasks: [], task_bounty: Number(10), task_url: \"\"});\n\nconst onBountyInputChange = ({ target }) => {\n State.update({ task_bounty: Number(target.value) });\n};\nconst onTaskUrlInputChange = ({ target }) => {\n State.update({ task_url: target.value });\n console.log(tasks)\n};\n\n// const onBtnClick = () => {\n// if (!state.new_greeting) {\n// return;\n// }\n\n// Near.call(contract, \"set_greeting\", {\n// greeting: state.new_greeting,\n// });\n// };\n\nconst onSubmitTaskClick = () => {\n Near.call(contract, \"create_task\", {\n repository_url: state.task_url, \n bounty: state.task_bounty\n },\n 30000000000000,\n 1000000000000000000000000); \n};\n\nconst onClearQueueClick = () => {\n Near.call(contract, \"clear_queue\", {});\n};\nconst onRefreshQueueClick = () => {\n const res = Near.view(contract, \"get_tasks_from_queue\", {});\n console.log(res);\n State.update({ tasks: res });\n};\n\n\n// const greeting = Near.call(contract, \"add_task\", {});\n\nconst submitTaskComponent = (\n <>\n <div className=\"mb-2 center flex\">\n <div className=\"border border-black p-3\">\n <label>Task</label>\n <input className=\"p-2 m-2 rounded-full\" placeholder=\"Wokspace location\" onChange={onTaskUrlInputChange} value={state.task_url}/>\n <input className=\"p-2 m-2 rounded-full\" placeholder=\"Bounty\" onChange={onBountyInputChange} value={state.bounty}/>\n <button className=\"btn btn-primary mt-2\" onClick={onSubmitTaskClick}>\n Submit\n </button>\n <button className=\"btn btn-primary mt-2\" onClick={onClearQueueClick}>\n Clear Queue\n </button>\n </div>\n </div>\n </>\n);\n\nconst notLoggedInWarning = () => {\n return (<>\n <button class=\"btn btn-primary mt-2\" onClick={onBtnClick}>\n Connect wallet\n </button>\n </>);\n};\n\nreturn (\n <Theme>\n <div class=\"header\">\n <img\n class=\"logo\"\n src=\"https://bafkreidsq3r5xof4umfa5mmsfem2kmsfh2nyxo22e5kj7bsqtr6pl3zdke.ipfs.nftstorage.link/\"\n />\n <p>\n Start earning crypto tokens for your hard work today! Join now and\n prosper with Web3 technology.\n </p>\n {context.accountId ? submitTaskComponent : notLoggedInWarning}\n </div>\n\n <div class=\"main\">\n {/* <h3>Search tasks</h3>\n <p class=\"gray\">\n Discover a range of fully decentralized frontends that leverage the\n power of BOS.\n </p> */}\n\n <div class=\"mt-5\">\n <h3>Task Queue</h3>\n </div>\n <div class=\"apps\">\n\n <button className=\"btn btn-primary mt-2\" onClick={onRefreshQueueClick}>\n Refresh Task Queue\n </button>\n {featured.map((component, i) => (\n <div key={i} class=\"widget\">\n <div class=\"flex\">\n <a href={`#/${component.widgetSrc}`} target=\"_blank\">\n <div class=\"image-parent\">\n <Widget\n src=\"mob.near/widget/WidgetImage\"\n props={{\n accountId: component.accountId,\n widgetName: component.widgetName,\n alt: component.widgetName,\n className,\n style: {},\n fallbackUrl:\n \"https://ipfs.near.social/ipfs/bafkreido7gsk4dlb63z3s5yirkkgrjs2nmyar5bxyet66chakt2h5jve6e\",\n }}\n />\n <div class=\"shadow\"></div>\n <div class=\"eth-logo\">\n <img\n src={\n \"https://ipfs.near.social/ipfs/bafkreibkkypb3zybzlwfotwa6tdmelalfnfucmvgzzeqwge4e75mkpq6dq\"\n }\n />\n </div>\n </div>\n </a>\n <div class=\"flex-right\">\n <p>{component.widgetName}</p>\n <p class=\"subtle gray\">Ethereum</p>\n </div>\n </div>\n <p>{component.description}</p>\n\n <a\n href={`#/mob.near/widget/WidgetSource?src=${component.widgetSrc}`}\n target=\"_blank\"\n >\n <i className=\"bi bi-file-earmark-code me-1\"></i>Source\n </a>\n </div>\n ))}\n </div>\n </div>\n\n <div class=\"footer\">\n <div className=\"text-center\">\n <a href=\"/#/thebos.near/widget/Terms\">Terms of Use</a> <span>|</span>{\" \"}\n <a href=\"/#/thebos.near/widget/Privacy\">Privacy Policy</a>\n </div>\n </div>\n </Theme>\n);\n"
}
}
}
Binary file added frontend/obrigado-react/obrigado.zip
Binary file not shown.
11 changes: 7 additions & 4 deletions frontend/obrigado-react/src/bos-landing-page.jsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const contract = "obrigado.testnet";
const tasks = Near.view(contract, "get_tasks_from_queue", {})
// const tasks = Near.view(contract, "get_tasks_from_queue", {})

const fontUrl = `https://ipfs.io/ipfs/bafkreicrs3gh7f77yhpw4xiejx35cd56jcczuhvqbwkn77g2ztkrjejopa`;

Expand Down Expand Up @@ -153,14 +153,17 @@ const onSubmitTaskClick = () => {
Near.call(contract, "create_task", {
repository_url: state.task_url,
bounty: state.task_bounty
});
},
30000000000000,
1000000000000000000000000);
};

const onClearQueueClick = () => {
Near.call(contract, "clear_queue", {});
};
const onRefreshQueueClick = () => {
const res = Near.call(contract, "get_tasks_from_queue", {});
const res = Near.view(contract, "get_tasks_from_queue", {});
console.log(res);
State.update({ tasks: res });
};

Expand Down Expand Up @@ -222,7 +225,7 @@ return (
<button className="btn btn-primary mt-2" onClick={onRefreshQueueClick}>
Refresh Task Queue
</button>
{state.tasks?.map((component, i) => (
{featured.map((component, i) => (
<div key={i} class="widget">
<div class="flex">
<a href={`#/${component.widgetSrc}`} target="_blank">
Expand Down
Loading

0 comments on commit b3371dd

Please sign in to comment.