Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
W
web-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
web-ci-test
Commits
d41de93e
提交
d41de93e
authored
5月 31, 2023
作者:
翁进城
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增加通用provider实现发布后刷新
上级
c77dd3e9
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
45 行增加
和
7 行删除
+45
-7
index.tsx
components/NavHeader/publishModal/index.tsx
+5
-1
commonProvider.tsx
lib/commonProvider.tsx
+29
-0
_app.page.tsx
pages/_app.page.tsx
+7
-4
index.tsx
pages/projectInfo/components/requirements/index.tsx
+4
-2
没有找到文件。
components/NavHeader/publishModal/index.tsx
浏览文件 @
d41de93e
import
{
Button
,
Form
,
Input
,
Modal
,
Select
}
from
"antd"
;
import
{
useEffect
,
useState
}
from
"react"
;
import
{
useContext
,
useEffect
,
useState
}
from
"react"
;
import
{
CommonContext
}
from
"~/lib/commonProvider"
;
import
{
useGeolocation
}
from
"~/lib/hooks"
;
import
api
,
{
PublishParams
,
TypeResp
}
from
"./api"
;
import
styles
from
"./index.module.scss"
;
...
...
@@ -19,6 +20,8 @@ export default function PublishModal(props: Props) {
});
const
[
form
]
=
Form
.
useForm
();
const
position
=
useGeolocation
();
const
{
reloadRequirements
,
setReloadRequirements
}
=
useContext
(
CommonContext
);
console
.
log
(
"position"
,
position
);
useEffect
(()
=>
{
...
...
@@ -40,6 +43,7 @@ export default function PublishModal(props: Props) {
if
(
res
.
code
===
"200"
)
{
props
.
onCancel
&&
props
.
onCancel
();
window
.
messageApi
.
success
(
"发布成功"
);
setReloadRequirements
(
!
reloadRequirements
);
setTimeout
(()
=>
{
form
.
resetFields
();
},
500
);
...
...
lib/commonProvider.tsx
0 → 100644
浏览文件 @
d41de93e
import
React
,
{
createContext
,
Dispatch
,
SetStateAction
,
useState
}
from
"react"
;
export
const
CommonContext
=
createContext
<
{
reloadRequirements
:
boolean
;
//更新项目需求列表
setReloadRequirements
:
Dispatch
<
SetStateAction
<
boolean
>>
;
}
>
({
reloadRequirements
:
false
,
setReloadRequirements
:
()
=>
{}
});
type
Props
=
{
children
:
React
.
ReactNode
;
};
const
CommonProvider
=
({
children
}:
Props
)
=>
{
const
[
reloadRequirements
,
setReloadRequirements
]
=
useState
(
false
);
return
(
<
CommonContext
.
Provider
value=
{
{
reloadRequirements
,
setReloadRequirements
,
}
}
>
{
children
}
</
CommonContext
.
Provider
>
);
};
export
default
CommonProvider
;
pages/_app.page.tsx
浏览文件 @
d41de93e
...
...
@@ -6,7 +6,8 @@ import { message } from "antd";
import
{
useEffect
}
from
"react"
;
import
Head
from
"next/head"
;
import
Script
from
"next/script"
;
import
UserProvider
,
{
UserContext
}
from
"~/lib/userProvider"
;
import
UserProvider
from
"~/lib/userProvider"
;
import
CommonProvider
from
"~/lib/commonProvider"
;
export
default
function
App
({
Component
,
pageProps
}:
AppProps
)
{
const
[
messageApi
,
contextHolder
]
=
message
.
useMessage
();
...
...
@@ -29,9 +30,11 @@ export default function App({ Component, pageProps }: AppProps) {
</
Head
>
<
Script
src=
"https://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"
></
Script
>
{
contextHolder
}
<
UserProvider
>
<
Component
{
...
pageProps
}
/>
</
UserProvider
>
<
CommonProvider
>
<
UserProvider
>
<
Component
{
...
pageProps
}
/>
</
UserProvider
>
</
CommonProvider
>
</>
);
}
pages/projectInfo/components/requirements/index.tsx
浏览文件 @
d41de93e
import
{
Button
,
Empty
,
Pagination
,
Popconfirm
,
Spin
,
Tooltip
}
from
"antd"
;
import
router
from
"next/router"
;
import
React
,
{
useState
,
useEffect
,
useContext
}
from
"react"
;
import
{
CommonContext
}
from
"~/lib/commonProvider"
;
import
{
UserContext
}
from
"~/lib/userProvider"
;
import
api
,
{
Item
}
from
"./api"
;
import
styles
from
"./index.module.scss"
;
...
...
@@ -25,12 +26,13 @@ export default function Requirements(props: Props) {
const
[
abort
,
setAbort
]
=
useState
<
AbortController
|
null
>
(
null
);
const
[
reload
,
setReload
]
=
useState
(
false
);
const
{
userInfo
}
=
useContext
(
UserContext
);
const
{
reloadRequirements
}
=
useContext
(
CommonContext
);
useEffect
(()
=>
{
//中断前一次请求
abort
?.
abort
();
setAbort
(
new
AbortController
());
},
[
pageParams
,
props
.
params
,
reload
]);
},
[
pageParams
,
props
.
params
,
reload
,
reloadRequirements
]);
useEffect
(()
=>
{
if
(
!
abort
)
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论