Commit ea75a93a authored by qiuxu's avatar qiuxu

fk

parent c0c660e1
......@@ -3,4 +3,7 @@
<component name="JavaScriptSettings">
<option name="languageLevel" value="JSX" />
</component>
<component name="ProjectPlainTextFileTypeManager">
<file url="file://$PROJECT_DIR$/src/Router.tsx" />
</component>
</project>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
/*
* aaa.js
* Created by 还有醋v on 2020/11/8.
* Copyright © 2020 haiyoucuv. All rights reserved.
*/"use strict";
function _toConsumableArray(t) {
return _arrayWithoutHoles(t) || _iterableToArray(t) || _unsupportedIterableToArray(t) || _nonIterableSpread()
}
function _nonIterableSpread() {
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
}
function _unsupportedIterableToArray(t, e) {
if (t) {
if ("string" == typeof t) return _arrayLikeToArray(t, e);
var i = Object.prototype.toString.call(t).slice(8, -1);
return "Object" === i && t.constructor && (i = t.constructor.name), "Map" === i || "Set" === i ? Array.from(t) : "Arguments" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i) ? _arrayLikeToArray(t, e) : void 0
}
}
function _iterableToArray(t) {
if ("undefined" != typeof Symbol && Symbol.iterator in Object(t)) return Array.from(t)
}
function _arrayWithoutHoles(t) {
if (Array.isArray(t)) return _arrayLikeToArray(t)
}
function _arrayLikeToArray(t, e) {
(null == e || e > t.length) && (e = t.length);
for (var i = 0, a = new Array(e); i < e; i++) a[i] = t[i];
return a
}
!function (t) {
function e(e) {
for (var a, r, s = e[0], l = e[1], c = e[2], d = 0, m = []; d < s.length; d++) r = s[d], Object.prototype.hasOwnProperty.call(n, r) && n[r] && m.push(n[r][0]), n[r] = 0;
for (a in l) Object.prototype.hasOwnProperty.call(l, a) && (t[a] = l[a]);
for (u && u(e); m.length;) m.shift()();
return o.push.apply(o, c || []), i()
}
function i() {
for (var t, e = 0; e < o.length; e++) {
for (var i = o[e], a = !0, s = 1; s < i.length; s++) {
var l = i[s];
0 !== n[l] && (a = !1)
}
a && (o.splice(e--, 1), t = r(r.s = i[0]))
}
return t
}
var a = {}, n = {0: 0}, o = [];
function r(e) {
if (a[e]) return a[e].exports;
var i = a[e] = {i: e, l: !1, exports: {}};
return t[e].call(i.exports, i, i.exports, r), i.l = !0, i.exports
}
r.m = t, r.c = a, r.d = function (t, e, i) {
r.o(t, e) || Object.defineProperty(t, e, {enumerable: !0, get: i})
}, r.r = function (t) {
"undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {value: "Module"}), Object.defineProperty(t, "__esModule", {value: !0})
}, r.t = function (t, e) {
if (1 & e && (t = r(t)), 8 & e) return t;
if (4 & e && "object" == typeof t && t && t.__esModule) return t;
var i = Object.create(null);
if (r.r(i), Object.defineProperty(i, "default", {
enumerable: !0,
value: t
}), 2 & e && "string" != typeof t) for (var a in t) r.d(i, a, function (e) {
return t[e]
}.bind(null, a));
return i
}, r.n = function (t) {
var e = t && t.__esModule ? function () {
return t.default
} : function () {
return t
};
return r.d(e, "a", e), e
}, r.o = function (t, e) {
return Object.prototype.hasOwnProperty.call(t, e)
}, r.p = "//s1.hdslb.com/bfs/static/jinkela/international-home/";
var s = window.webpackJsonp = window.webpackJsonp || [], l = s.push.bind(s);
s.push = e, s = s.slice();
for (var c = 0; c < s.length; c++) e(s[c]);
var u = l;
o.push([379, 1]), i()
}(Array(119).concat([function (t, e, i) {
var ge = {
props: {layerConfig: {type: Array, required: !0}}, mounted: function () {
var t = this;
return U()(z.a.mark((function e() {
var i, a, n, o, r, s, l, c, u, d, m, p, h, f, v;
return z.a.wrap((function (e) {
for (; ;) switch (e.prev = e.next) {
case 0:
(i = t.layerConfig).length || t.$emit("error"), a = t.$refs.container, n = a.clientHeight, o = a.clientWidth, r = n / 155, i.forEach((function (t) {
t.images.forEach((function (e, i) {
var a = t.images[i].img;
a.dataset.height = a.height, a.dataset.width = a.width, a.height = a.dataset.height * r * (t.initial.scale || 1), a.width = a.dataset.width * r * (t.initial.scale || 1)
}))
})), s = i.map((function (t) {
var e = document.createElement("div");
return e.classList.add("layer"), a.appendChild(e), e
})), l = 0, c = 0, u = 0, d = function () {
try {
s.map((function (t, e) {
var a = i[e], n = t.firstChild, o = "", r = "";
if (a.initial.rotate && (o = "rotate(".concat(a.initial.rotate, "deg)")), a.initial.translate) {
var s = a.initial.translate || [0, 0];
r = "translate(".concat(s[0], "px, ").concat(s[1], "px)")
}
n.style.transform = "".concat(r, " ").concat(o), a.initial.blur && (n.style.filter = "blur(".concat(Math.abs(a.initial.blur), "px)"))
}))
} catch (e) {
console.error(e), t.$emit("error")
}
}, m = function (t) {
var e = be.apply(void 0, ce()(t));
return function (t) {
return t > 0 ? e(t) : -e(-t)
}
}, p = function (e) {
try {
s.map((function (t, e) {
var a = i[e], n = t.firstChild;
if (a.offset && n) {
var o = a.initial.rotate || 0, s = a.initial.translate || [0, 0], c = "",
u = "rotate(".concat(a.initial.rotate || 0, "deg)"),
d = "translate(".concat(s[0], "px, ").concat(s[1], "px)");
if (a.offset.scale) {
var p = a.offsetCurve && a.offsetCurve.scale ? m(a.offsetCurve.scale) : function (t) {
return t
}, h = a.offset.scale * p(l);
c = "scale(".concat(1 + h, ")")
}
if (a.offset.rotate) {
var f = a.offsetCurve && a.offsetCurve.rotate ? m(a.offsetCurve.rotate) : function (t) {
return t
}, v = a.offset.rotate * f(l);
u = "rotate(".concat(o + v, "deg)")
}
if (a.offset.translate) {
var b = a.offsetCurve && a.offsetCurve.translate ? m(a.offsetCurve.translate) : function (t) {
return t
}, g = a.offset.translate.map((function (t) {
return b(l) * t
})), w = s.map((function (t, e) {
return (t + g[e]) * r * (a.initial.scale || 1)
}));
d = "translate(".concat(w[0], "px, ").concat(w[1], "px)")
}
if (n.style.transform = "".concat(c, " ").concat(d, " ").concat(u), a.offset.blur) {
var y = (a.offsetCurve && a.offsetCurve.blur ? m(a.offsetCurve.blur) : function (t) {
return t
})(l) * a.offset.blur;
n.style.filter = "blur(".concat(Math.abs((a.initial.blur || 0) + y), "px)")
}
}
}))
} catch (e) {
console.error(e), t.$emit("error")
}
}, h = function t(e, i, a) {
setTimeout((function () {
var n = a === i.length - 1 ? 0 : a + 1;
e.removeChild(e.firstChild), e.appendChild(i[n].img), t(e, i, n), requestAnimationFrame(p)
}), i[a].duration)
}, i.map((function (t, e) {
var i = t.images[0].img;
s[e].appendChild(i), requestAnimationFrame(d), t.images.length > 1 && t.loopTime > 0 && h(s[e], t.images, 0)
})), f = function () {
var t = performance.now(), e = l;
cancelAnimationFrame(u);
u = requestAnimationFrame((function i(a) {
a - t < 200 ? (l = e * (1 - (a - t) / 200), p(), requestAnimationFrame(i)) : (l = 0, p())
}))
}, v = !1, t.handleMouseLeave = function () {
v = !1, f()
}, t.handleMouseMove = function (t) {
document.documentElement.scrollTop + t.clientY < n ? (v || (v = !0, c = t.clientX), l = (t.clientX - c) / o, cancelAnimationFrame(u), u = requestAnimationFrame(p)) : v && (v = !1, f())
}, t.handleResize = function () {
n = a.clientHeight, o = a.clientWidth, r = n / 155, i.forEach((function (t) {
t.images.forEach((function (e) {
var i = e.img;
i.height = i.dataset.height * r * (t.initial.scale || 1), i.width = i.dataset.width * r * (t.initial.scale || 1)
}))
})), cancelAnimationFrame(u), u = requestAnimationFrame((function (t) {
p()
}))
}, document.addEventListener("mouseleave", t.handleMouseLeave), window.addEventListener("mousemove", t.handleMouseMove), window.addEventListener("resize", t.handleResize);
case 24:
case"end":
return e.stop()
}
}), e)
})))()
}, beforeDestroy: function () {
document.removeEventListener("mouseleave", this.handleMouseLeave), window.removeEventListener("mousemove", this.handleMouseMove), window.removeEventListener("resize", this.handleResize)
}, methods: {}
}, we = (i(784), i(785), {
components: {
AnimatedBanner: Object(at.a)(ge, (function () {
var t = this.$createElement;
return (this._self._c || t)("div", {ref: "container", staticClass: "animated-banner"})
}), [], !1, null, "0a487de8", null).exports
}, props: {
bid: {type: Number, default: 142}, locsData: {
type: Object, default: function () {
return {}
}
}, userInfo: {
type: Object, default: function () {
return {}
}
}, bannerData: {
type: Array, default: function () {
return []
}
}
}, data: function () {
return {
mid: null,
animatedBannerSupport: !1,
animatedBannerEnabled: !1,
animatedBannerLoaded: !1,
layerConfig: null
}
}, watch: {
userInfo: {
deep: !0, handler: function (t) {
this.mid = t.mid
}
}, bannerImg: function (t) {
t && this.bannerDataFetched && this.bannerDataFetched()
}
}, computed: {
locs: function () {
return this.bannerData[0] || this.locsData && this.locsData[this.bid][0]
}, bannerImg: function () {
return Q(this.locs && this.locs.pic)
}, logoImg: function () {
return Q(this.locs && this.locs.litpic)
}, bannerTitle: function () {
return this.locs && this.locs.name
}, bannerLink: function () {
var t = Q(this.locs && this.locs.url) || null;
return t && -1 !== t.indexOf("__MID__") && -1 !== t.indexOf("__REQUESTID__") && this.mid ? t.replace("__MID__", this.mid || "__MID__").replace("__REQUESTID__", this.locs.request_id || "__REQUESTID__") : t
}, animatedBannerShow: function () {
return this.animatedBannerEnabled && this.animatedBannerSupport && this.animatedBannerLoaded
}
}, mounted: function () {
this.animatedBanner()
}, methods: {
animatedBanner: function () {
var t = this;
return U()(z.a.mark((function e() {
var i;
return z.a.wrap((function (e) {
for (; ;) switch (e.prev = e.next) {
case 0:
if (t.locs) {
e.next = 3;
break
}
return e.next = 3, new Promise((function (e) {
return t.bannerDataFetched = e
}));
case 3:
return (i = document.createElement("img")).src = Q(t.locs && t.locs.pic), e.next = 7, new Promise((function (t) {
return i.onload = t
}));
case 7:
if (t.locs.litpic.indexOf("/bfs/archive/622017dd4b0140432962d3ce0c6db99d77d2e937.png") > 0) {
t.animatedBannerEnabled = !0;
try {
t.layerConfig = JSON.parse('[{"images":[{"src":"https://i0.hdslb.com/bfs/vc/8e084d67aa18ed9c42dce043e06e16b79cbb50ef.png"}],"initial":{"scale":1,"blur":4},"offset":{"blur":4},"offsetCurve":{"blur":[0,0,1,1]}},{"images":[{"src":"https://i0.hdslb.com/bfs/vc/082e39ef757826401ef82da818310d42e05bc2de.png","duration":5000},{"src":"https://i0.hdslb.com/bfs/vc/ddad7c909e4c2cf933473e971373d825e6f06519.png","duration":60},{"src":"https://i0.hdslb.com/bfs/vc/173eafe211b4671e5aff059a1834f3e4579c7a5d.png","duration":200},{"src":"https://i0.hdslb.com/bfs/vc/f1892bc119b722c3cda5b26269c292a90a9f5f06.png","duration":60}],"initial":{"scale":0.6,"blur":0},"offset":{"translate":[15,0],"blur":10},"offsetCurve":{"blur":[0.3,0.7,0.5,0.5]}},{"images":[{"src":"https://i0.hdslb.com/bfs/vc/dbd5c17c4315714de9e4ee119694d2e9efaf9639.png"}],"initial":{"scale":1,"translate":[-50,0],"blur":1},"offset":{"translate":[30,0],"blur":-5},"offsetCurve":{"blur":[0.25,1,1,0]}},{"images":[{"src":"https://i0.hdslb.com/bfs/vc/cd9be0a2716adbae85fd899259381c4b2c2893c7.png"}],"initial":{"scale":0.6,"translate":[0,7],"blur":4},"offset":{"translate":[60,0],"blur":-10},"offsetCurve":{"blur":[0.4,1,1,0]}},{"images":[{"src":"https://i0.hdslb.com/bfs/vc/88537437a7916ecde847fa46652b44fbd3cbbb06.png"}],"initial":{"scale":0.6,"translate":[0,-3],"blur":5},"offset":{"translate":[130,0],"blur":-10},"offsetCurve":{"blur":[0.5,1,1,0]}},{"images":[{"src":"https://i0.hdslb.com/bfs/vc/37d9a93baa55870506a6f3e6308e7a0c386b97c7.png"}],"initial":{"scale":0.65,"blur":6},"offset":{"translate":[150,0],"blur":-6},"offsetCurve":{}}]')
} catch (e) {
console.error("animated_banner_config parse error"), t.layerConfig = [], t.animatedBannerEnabled = !1
}
}
if (t.animatedBannerSupport = "undefined" != typeof CSS && CSS.supports && CSS.supports("filter: blur(1px)"), !t.animatedBannerSupport || !t.animatedBannerEnabled) {
e.next = 20;
break
}
return t.layerConfig.map((function (t) {
t.loopTime = t.images.reduce((function (t, e) {
return t + (e.duration || 0)
}), 0)
})), e.prev = 11, e.next = 14, Promise.all(t.layerConfig.map(function () {
var t = U()(z.a.mark((function t(e) {
return z.a.wrap((function (t) {
for (; ;) switch (t.prev = t.next) {
case 0:
return t.abrupt("return", Promise.all(e.images.map(function () {
var t = U()(z.a.mark((function t(i, a) {
var n;
return z.a.wrap((function (t) {
for (; ;) switch (t.prev = t.next) {
case 0:
return (n = document.createElement("img")).src = i.src, t.next = 4, new Promise((function (t) {
return n.onload = t
}));
case 4:
e.images[a].img = n;
case 5:
case"end":
return t.stop()
}
}), t)
})));
return function (e, i) {
return t.apply(this, arguments)
}
}())));
case 1:
case"end":
return t.stop()
}
}), t)
})));
return function (e) {
return t.apply(this, arguments)
}
}()));
case 14:
t.animatedBannerLoaded = !0, e.next = 20;
break;
case 17:
e.prev = 17, e.t0 = e.catch(11), console.log("load animated banner images error");
case 20:
case"end":
return e.stop()
}
}), e, null, [[11, 17]])
})))()
}
}
}), ye = (i(786), Object(at.a)(we, (function () {
var t = this, e = t.$createElement, i = t._self._c || e;
return i("div", {
staticClass: "bili-banner",
style: t.animatedBannerShow ? "" : "background-image: url(" + t.bannerImg + ")"
}, [t.animatedBannerShow ? i("AnimatedBanner", {
attrs: {layerConfig: t.layerConfig}, on: {
error: function (e) {
t.animatedBannerLoaded = !1
}
}
}) : t._e(), i("div", {staticClass: "taper-line"}), i("div", {
staticClass: "b-logo b-wrap",
staticStyle: {margin: "0"}
}, [i("a", {
directives: [{
name: "van-report",
rawName: "v-van-report:headBannerLogo.click",
arg: "headBannerLogo",
modifiers: {click: !0}
}], staticClass: "head-logo", attrs: {href: "//www.bilibili.com"}
}, [i("img", {
staticClass: "logo-img",
attrs: {src: t.logoImg}
})]), t.bannerTitle ? i("a", {
directives: [{
name: "van-report",
rawName: "v-van-report:headBanner.click",
arg: "headBanner",
modifiers: {click: !0}
}],
staticClass: "head-title",
attrs: {href: t.bannerLink, target: "_blank"},
domProps: {textContent: t._s(t.bannerTitle)}
}) : t._e()]), t.bannerLink ? i("a", {
directives: [{
name: "van-report",
rawName: "v-van-report:headBanner.click",
arg: "headBanner",
modifiers: {click: !0}
}], staticClass: "banner-link", attrs: {href: t.bannerLink, target: "_blank"}
}) : t._e()], 1)
}), [], !1, null, "7965f258", null).exports)
}]));
[
{
"images": [
{
"src": "https://i0.hdslb.com/bfs/vc/8e084d67aa18ed9c42dce043e06e16b79cbb50ef.png"
}
],
"initial": {
"scale": 1,
"blur": 4
},
"offset": {
"blur": 4
},
"offsetCurve": {
"blur": [
0,
0,
1,
1
]
}
},
{
"images": [
{
"src": "https://i0.hdslb.com/bfs/vc/082e39ef757826401ef82da818310d42e05bc2de.png",
"duration": 5000
},
{
"src": "https://i0.hdslb.com/bfs/vc/ddad7c909e4c2cf933473e971373d825e6f06519.png",
"duration": 60
},
{
"src": "https://i0.hdslb.com/bfs/vc/173eafe211b4671e5aff059a1834f3e4579c7a5d.png",
"duration": 200
},
{
"src": "https://i0.hdslb.com/bfs/vc/f1892bc119b722c3cda5b26269c292a90a9f5f06.png",
"duration": 60
}
],
"initial": {
"scale": 0.6,
"blur": 0
},
"offset": {
"translate": [
15,
0
],
"blur": 10
},
"offsetCurve": {
"blur": [
0.3,
0.7,
0.5,
0.5
]
}
},
{
"images": [
{
"src": "https://i0.hdslb.com/bfs/vc/dbd5c17c4315714de9e4ee119694d2e9efaf9639.png"
}
],
"initial": {
"scale": 1,
"translate": [
-50,
0
],
"blur": 1
},
"offset": {
"translate": [
30,
0
],
"blur": -5
},
"offsetCurve": {
"blur": [
0.25,
1,
1,
0
]
}
},
{
"images": [
{
"src": "https://i0.hdslb.com/bfs/vc/cd9be0a2716adbae85fd899259381c4b2c2893c7.png"
}
],
"initial": {
"scale": 0.6,
"translate": [
0,
7
],
"blur": 4
},
"offset": {
"translate": [
60,
0
],
"blur": -10
},
"offsetCurve": {
"blur": [
0.4,
1,
1,
0
]
}
},
{
"images": [
{
"src": "https://i0.hdslb.com/bfs/vc/88537437a7916ecde847fa46652b44fbd3cbbb06.png"
}
],
"initial": {
"scale": 0.6,
"translate": [
0,
-3
],
"blur": 5
},
"offset": {
"translate": [
130,
0
],
"blur": -10
},
"offsetCurve": {
"blur": [
0.5,
1,
1,
0
]
}
},
{
"images": [
{
"src": "https://i0.hdslb.com/bfs/vc/37d9a93baa55870506a6f3e6308e7a0c386b97c7.png"
}
],
"initial": {
"scale": 0.65,
"blur": 6
},
"offset": {
"translate": [
150,
0
],
"blur": -6
},
"offsetCurve": {}
}
]
\ No newline at end of file
......@@ -2134,6 +2134,11 @@
}
}
},
"@types/history": {
"version": "4.7.8",
"resolved": "https://registry.npm.taobao.org/@types/history/download/@types/history-4.7.8.tgz?cache=0&sync_timestamp=1600295937543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhistory%2Fdownload%2F%40types%2Fhistory-4.7.8.tgz",
"integrity": "sha1-STSDh5gwdXBf6PTgL7Z/farsSTQ="
},
"@types/html-minifier-terser": {
"version": "5.1.1",
"resolved": "https://registry.npm.taobao.org/@types/html-minifier-terser/download/@types/html-minifier-terser-5.1.1.tgz?cache=0&sync_timestamp=1600889078076&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhtml-minifier-terser%2Fdownload%2F%40types%2Fhtml-minifier-terser-5.1.1.tgz",
......@@ -2219,6 +2224,47 @@
}
}
},
"@types/react-router": {
"version": "5.1.8",
"resolved": "https://registry.npm.taobao.org/@types/react-router/download/@types/react-router-5.1.8.tgz",
"integrity": "sha1-RhTlunVZZXQ44Xdmu5Xvbtasw/o=",
"requires": {
"@types/history": "*",
"@types/react": "*"
},
"dependencies": {
"@types/react": {
"version": "16.9.56",
"resolved": "https://registry.npm.taobao.org/@types/react/download/@types/react-16.9.56.tgz?cache=0&sync_timestamp=1604651667761&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.56.tgz",
"integrity": "sha1-6iWEe1PFvsBkkzCV/DZrFGLirfA=",
"requires": {
"@types/prop-types": "*",
"csstype": "^3.0.2"
}
}
}
},
"@types/react-router-dom": {
"version": "5.1.6",
"resolved": "https://registry.npm.taobao.org/@types/react-router-dom/download/@types/react-router-dom-5.1.6.tgz?cache=0&sync_timestamp=1601999494005&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router-dom%2Fdownload%2F%40types%2Freact-router-dom-5.1.6.tgz",
"integrity": "sha1-B7FOerGJOoN8hWVjSWDcOYVksfs=",
"requires": {
"@types/history": "*",
"@types/react": "*",
"@types/react-router": "*"
},
"dependencies": {
"@types/react": {
"version": "16.9.56",
"resolved": "https://registry.npm.taobao.org/@types/react/download/@types/react-16.9.56.tgz?cache=0&sync_timestamp=1604651667761&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.56.tgz",
"integrity": "sha1-6iWEe1PFvsBkkzCV/DZrFGLirfA=",
"requires": {
"@types/prop-types": "*",
"csstype": "^3.0.2"
}
}
}
},
"@types/resolve": {
"version": "0.0.8",
"resolved": "https://registry.npm.taobao.org/@types/resolve/download/@types/resolve-0.0.8.tgz",
......
<!DOCTYPE html>
<html lang="en">
<html lang="zh">
<head>
<meta charset="utf-8" />
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
......
......@@ -5,21 +5,6 @@
background-color: #fff;
text-align: center;
.header {
position: sticky;
top: 0;
left: 0;
height: 175px;
width: 100%;
z-index: 2;
.search {
display: block;
opacity: 1;
z-index: 3;
}
}
.main {
background-color: #fff;
}
......
import React, {ReactInstance, ReactNode} from 'react';
import React, {Component, ReactNode} from 'react';
import ReactDOM from 'react-dom';
import './App.less';
......@@ -11,45 +11,52 @@ import AppSearch from "./Component/AppSearch/AppSearch";
import {VerticalAlignTopOutlined} from "@ant-design/icons";
import Details from "./Pages/Details/Details";
import Index from "./Pages/Index/Index";
import {Tools} from "./Tools";
import BasicRoute from "./BasicRoute";
import {HashRouter, Route, Switch} from "react-router-dom";
class App extends React.Component {
export enum PAGE {
INDEX = 'index',
SEARCH = 'search',
DETAILS = 'details',
}
export let changePage = function (page: PAGE, data: any = null) {
}
class App extends HashRouter {
public state: any = {
page: PAGE.INDEX,
pageData: null,
}
public componentDidMount(): void {
this.setHeaderEffect();
}
private setHeaderEffect(){
const searchDiv = ReactDOM.findDOMNode(this.refs.searchDiv) as HTMLDivElement;
document.addEventListener('scroll', (e) => {
let scrolled = document.documentElement.scrollTop / (searchDiv.clientHeight + 30);
searchDiv.style.opacity = (1 - scrolled) + '';
searchDiv.style.zIndex = (scrolled >= 1) ? '-1' : '2'; // 不用display,否则会导致页面高度改变
});
private setHeaderEffect() {
}
public render(): ReactNode {
return (
<div>
{/* app */}
<div className='app'>
<div className='header' ref='searchDiv'>
<AppHeader/>
<div className='search'>
<AppSearch/>
</div>
</div>
{/* main */}
<div className='main'>
<Index/>
{/*<SearchList/>*/}
{/*<Details/>*/}
<BasicRoute ref='route'/>
</div>
{/* footer */}
<div className='footer'>
<AppFooter/>
</div>
</div>
{/* BackTop */}
<BackTop
visibilityHeight={100}
>
......
import React, { Component } from 'react';
import {HashRouter, Route, Switch, Redirect} from 'react-router-dom';
import Index from "./Pages/Index/Index";
import SearchList from "./Element/SearchLIst/SearchList";
import Details from "./Pages/Details/Details";
class BasicRoute extends Component {
render() {
return (
<HashRouter>
<Switch>
<Route exact path="/" component={Index}/>
<Route exact path="seacrh" component={SearchList}/>
<Route exact path="details" component={Details}/>
</Switch>
</HashRouter>
);
}
}
export default BasicRoute;
......@@ -5,41 +5,80 @@
*/
import React, {ReactNode} from 'react';
import React, {ChangeEvent, ReactNode} from 'react';
import './AppSearch.less';
import {Button, Input} from 'antd';
import logo from "../../logo.svg";
import {SearchOutlined} from '@ant-design/icons';
import {Tools} from "../../Tools";
export default class AppSearch extends React.Component<any> {
public state: any = {}
public value: string = '';
private input: Input | undefined;
constructor(props: any, context: any) {
super(props, context);
}
public componentDidMount(): void {
this.input = this.refs.input as Input;
}
public componentWillUnmount(): void {
}
/**
* 点击搜索按钮查询包
*/
private packageQuery = async () => {
console.log(this.input);
const keyword = this.input!.state.value;
const res = await Tools.packageQuery({
keyword,
});
// @ts-ignore
this.props.history.push('/search');
}
private async updateTempList() {
const res = await Tools.packageQuery();
console.log(res);
}
private onInputChange = (event: ChangeEvent<HTMLInputElement>) => {
this.value = event.target.value;
}
public render(): ReactNode {
const {packageQuery} = this.props;
return (
<div className='app-search'>
<div className="app-search-cont">
<img src={logo} className="app-search-logo" alt="logo"/>
<div className='app-search-div'>
<Input className='app-search-input' size="large" placeholder="Search packages" prefix={
<SearchOutlined className='app-search-input-icon'/>
}/>
<Button className='app-search-btn' type="primary">Search</Button>
<Input className='app-search-input'
ref='input'
size="large"
onChange={this.onInputChange}
placeholder="Search packages"
prefix={
<SearchOutlined className='app-search-input-icon'/>
}
/>
<Button
onClick={this.packageQuery}
className='app-search-btn'
type="primary"
>
Search
</Button>
</div>
</div>
......
......@@ -26,17 +26,18 @@ export default class SearchListItem extends React.Component<any> {
}
public render(): ReactNode {
const {title, link, description, userNick, date} = this.props.data;
const {id, name, type, remark, versions, gmt_create, gmt_modified, link, userNick} = this.props.data;
console.log(this.props.data);
return (
<div className='search-item'>
<div className='search-item-left'>
<a href={link}><h3 className='search-item-title'>{title}</h3></a>
<p className='search-item-description'>{description}</p>
<a href={link}><h3 className='search-item-title'>{name}</h3></a>
<p className='search-item-description'>{remark}</p>
<div className='search-item-info'>
<img className='search-item-info-avatar'
src="https://zos.alipayobjects.com/rmsportal/ODTLcjxAfvqbxHnVXCYX.png"/>
<div className='search-item-info-user'>{userNick}</div>
<div className='search-item-info-date'>{date}</div>
<div className='search-item-info-date'>{gmt_modified}</div>
</div>
</div>
</div>
......
......@@ -4,28 +4,43 @@
* Copyright © 2020 haiyoucuv. All rights reserved.
*/
.app-header {
display: flex;
align-items: center;
padding: 1em 3em;
.header {
position: sticky;
top: 0;
left: 0;
height: 175px;
width: 100%;
z-index: 2;
background-color: #fff;
.search {
display: block;
opacity: 1;
z-index: 3;
}
.app-header {
display: flex;
align-items: center;
padding: 1em 3em;
background-color: #fff;
//position: sticky;
//top: 0;
//left: 0;
//height: auto;
//width: 100%;
//position: sticky;
//top: 0;
//left: 0;
//height: auto;
//width: 100%;
border-color: rgba(0,0,0,.2);
box-shadow: 0 4px 13px -3px rgba(0, 0, 0, 0.10196);
border-color: rgba(0,0,0,.2);
box-shadow: 0 4px 13px -3px rgba(0, 0, 0, 0.10196);
.app-logo {
height: 50px;
.app-logo {
height: 50px;
&:hover {
animation: spin 1s;
&:hover {
animation: spin 1s;
}
}
}
}
\ No newline at end of file
}
}
......@@ -10,6 +10,8 @@ import logo from "../../logo.svg";
import {Menu} from "antd";
import './AppHeader.less';
import AppSearch from "../../Component/AppSearch/AppSearch";
import ReactDOM from "react-dom";
export default class AppHeader extends React.Component<any> {
......@@ -20,7 +22,12 @@ export default class AppHeader extends React.Component<any> {
}
public componentDidMount(): void {
const searchDiv = ReactDOM.findDOMNode(this.refs.searchDiv) as HTMLDivElement;
document.addEventListener('scroll', (e) => {
let scrolled = document.documentElement.scrollTop / (searchDiv.clientHeight + 30);
searchDiv.style.opacity = (1 - scrolled) + '';
searchDiv.style.zIndex = (scrolled >= 1) ? '-1' : '2'; // 不用display,否则会导致页面高度改变
});
}
public componentWillUnmount(): void {
......@@ -28,14 +35,24 @@ export default class AppHeader extends React.Component<any> {
}
public render(): ReactNode {
const {history} = this.props;
return (
<div className='app-header'>
<img src={logo} className="app-logo" alt="logo"/>
<Menu theme="light" mode="horizontal" defaultSelectedKeys={['1']}>
<Menu.Item key="1">nav 1</Menu.Item>
<Menu.Item key="2">nav 2</Menu.Item>
<Menu.Item key="3">nav 3</Menu.Item>
</Menu>
<div className='header' ref='searchDiv'>
<div className='app-header'>
<img src={logo} className="app-logo" alt="logo"/>
<Menu theme="light" mode="horizontal" defaultSelectedKeys={['1']}>
<Menu.Item key="1">nav 1</Menu.Item>
<Menu.Item key="2">nav 2</Menu.Item>
<Menu.Item key="3">nav 3</Menu.Item>
</Menu>
</div>
<div className='search'>
<AppSearch
history={history}
ref={'appSearch'}
packageQuery={'this.packageQuery'}
/>
</div>
</div>
);
}
......
......@@ -28,27 +28,13 @@ export default class SearchList extends React.Component<any> {
}
public componentDidMount(): void {
for (let i = 0; i < 500; i++) {
this.totalData.push({
title: `Ant Design Title ${i}`,
userNick: `userNick${i}`,
date: 'publish 2020年10月31日',
link: 'https://www.baidu.com/',
description: `Ant Design, a design language for background applications, is refined by Ant UED Team
Ant Design, a design language for background applications, is refined by Ant UED Team
Ant Design, a design language for background applications, is refined by Ant UED Team
Ant Design, a design language for background applications, is refined by Ant UED Team
Ant Design, a design language for background applications, is refined by Ant UED Team
Ant Design, a design language for background applications, is refined by Ant UED Team
Ant Design, a design language for background applications, is refined by Ant UED Team
`,
});
}
const {data} = this.props;
this.totalData = data.data.packages;
this.setState({
total: this.totalData.length,
});
this.showPage(1);
}
public componentWillUnmount(): void {
......
......@@ -10,7 +10,6 @@
background-color: #000;
.index-bg {
--percentage: 0;
position: sticky;
top: 0;
......@@ -18,10 +17,8 @@
//background-image: linear-gradient(75deg, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 1) 33.33%, rgba(255, 255, 255, 0) 66.67%, rgba(255, 255, 255, 0) 100%);
background-size: 300% 100%;
background-position-x: calc(100% - var(--percentage));
background-clip: text;
-webkit-background-clip: text;
//height: 796px;
background-image: url("https://static.npmjs.com/attachments/ck3uwvv67mydydr74ea00ip4j-bg-stripes.png");
//background-position: center center;
//background-repeat: no-repeat;
......@@ -39,6 +36,12 @@
.index-txt-h1 {
color: transparent;
transition: .5s;
&:hover {
color: #ffffffaa;
}
margin: .67em 0;
box-sizing: border-box;
line-height: 1.25;
......@@ -60,6 +63,14 @@
margin-right: auto;
}
.index-txt-cont > div {
transition: .5s;
&:hover {
color: #ffffffaa;
}
}
.index-txt-cont-center {
color: transparent;
......@@ -69,6 +80,12 @@
margin-inline-end: 0;
font-size: 1.7rem;
font-weight: 600;
transition: .5s;
&:hover {
color: #ffffffaa;
}
}
.index-btn {
......@@ -85,6 +102,12 @@
text-decoration: none;
margin-left: auto;
margin-right: auto;
transition: .5s;
&:hover {
color: #ffffffaa;
}
}
& > a > div {
......
......@@ -9,6 +9,7 @@ import React, {ReactNode} from 'react';
import ReactDOM from 'react-dom';
import './Index.less';
import AppHeader from "../../Element/AppHeader/AppHeader";
export default class Index extends React.Component<any> {
......@@ -21,10 +22,10 @@ export default class Index extends React.Component<any> {
public componentDidMount(): void {
const indexTxt = ReactDOM.findDOMNode(this.refs.indexTxt) as HTMLDivElement;
document.addEventListener('scroll', (e) => {
let scrolled = document.documentElement.scrollTop / (document.documentElement.scrollHeight - document.documentElement.clientHeight)
indexTxt.style.setProperty('--percentage', `${scrolled * 100}%`)
indexTxt.style.setProperty('--percentage', `${0}%`);
document.addEventListener('scroll', () => {
let scrolled = document.documentElement.scrollTop / (document.documentElement.scrollHeight - document.documentElement.clientHeight);
indexTxt.style.setProperty('--percentage', `${scrolled * 100}%`);
})
}
......@@ -33,9 +34,17 @@ export default class Index extends React.Component<any> {
}
public render(): ReactNode {
const {history} = this.props;
return (
<div className='index'>
<div className='index-bg' ref='indexTxt'>
<AppHeader
ref='searchDiv'
history={history}
/>
<div className='index-bg' ref='indexTxt'>
<div className="index-txt">
<h1 className="index-txt-h1">
Build amazing things
......@@ -58,7 +67,7 @@ export default class Index extends React.Component<any> {
</div>
<div className="index-btn">
<a href="/start">
<a href="#">
Let's Get To Start
<div>____________________</div>
</a>
......
/*
* Tools.ts
* Created by 还有醋v on 2020/11/10.
* Copyright © 2020 haiyoucuv. All rights reserved.
*/
import Request from "./request/Request";
import {apiList} from "./request/apiList";
export class Tools {
constructor() {
}
public static async packageQuery(
params: {
keyword?: string,
searchType?: 'id' | 'name' | 'remark',
pkgType?: 1 | 2 | 3,
pageNum?: string,
pageSize?: string,
} = {}
) {
const res = await Request.api(apiList.packageQuery, params);
if (!res) {
return null;
}
return res;
}
}
\ No newline at end of file
/*
* Request.ts
* Created by 还有醋v on 2020/11/10.
* Copyright © 2020 haiyoucuv. All rights reserved.
*/
import {AxiosResponse} from "axios";
const axios = require('axios');
export default class Request {
constructor() {
}
/**
* 请求个接口
* @param url
* @param params
* @param type
*/
public static api(
url: string,
params: any = {},
type: 'get' | 'post' = 'get'
) {
return new Promise((resolve, reject) => {
Request[type](url, params)
.then((res) => {
resolve(res.data);
})
.catch((err) => {
resolve(null);
});
})
}
public static get<T = any, R = AxiosResponse<T>>(
url: string,
params: any = {}
): Promise<R> {
return axios.get(url, {
params: {
__timestamp__: Date.now(),
...params
}
});
}
public static post<T = any, R = AxiosResponse<T>>(
url: string,
params: any = {}
): Promise<R> {
return axios.post(url, {
__timestamp__: Date.now(),
...params
});
}
// public static file(
// url: string,
// params: any = {},
// ) {
//
// }
}
\ No newline at end of file
/*
* apiList.ts
* Created by 还有醋v on 2020/11/10.
* Copyright © 2020 haiyoucuv. All rights reserved.
*/
export const apiList = {
packageQuery: 'http://spark.duiba.com.cn/package/query'
}
\ No newline at end of file
......@@ -1017,7 +1017,7 @@
dependencies:
regenerator-runtime "^0.13.4"
"@babel/runtime@^7.10.1", "@babel/runtime@^7.10.3", "@babel/runtime@^7.10.4", "@babel/runtime@^7.11.1", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.9.2":
"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.1", "@babel/runtime@^7.10.3", "@babel/runtime@^7.10.4", "@babel/runtime@^7.11.1", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.9.2":
version "7.12.5"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e"
integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==
......@@ -1647,6 +1647,11 @@
dependencies:
"@types/node" "*"
"@types/history@*":
version "4.7.8"
resolved "https://registry.npm.taobao.org/@types/history/download/@types/history-4.7.8.tgz?cache=0&sync_timestamp=1600295937543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhistory%2Fdownload%2F%40types%2Fhistory-4.7.8.tgz#49348387983075705fe8f4e02fb67f7daaec4934"
integrity sha1-STSDh5gwdXBf6PTgL7Z/farsSTQ=
"@types/html-minifier-terser@^5.0.0":
version "5.1.1"
resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#3c9ee980f1a10d6021ae6632ca3e79ca2ec4fb50"
......@@ -1736,6 +1741,23 @@
dependencies:
"@types/react" "*"
"@types/react-router-dom@^5.1.6":
version "5.1.6"
resolved "https://registry.npm.taobao.org/@types/react-router-dom/download/@types/react-router-dom-5.1.6.tgz?cache=0&sync_timestamp=1601999494005&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router-dom%2Fdownload%2F%40types%2Freact-router-dom-5.1.6.tgz#07b14e7ab1893a837c8565634960dc398564b1fb"
integrity sha1-B7FOerGJOoN8hWVjSWDcOYVksfs=
dependencies:
"@types/history" "*"
"@types/react" "*"
"@types/react-router" "*"
"@types/react-router@*":
version "5.1.8"
resolved "https://registry.npm.taobao.org/@types/react-router/download/@types/react-router-5.1.8.tgz#4614e5ba7559657438e17766bb95ef6ed6acc3fa"
integrity sha1-RhTlunVZZXQ44Xdmu5Xvbtasw/o=
dependencies:
"@types/history" "*"
"@types/react" "*"
"@types/react@*", "@types/react@^16.9.53":
version "16.9.55"
resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.55.tgz#47078587f5bfe028a23b6b46c7b94ac0d436acff"
......@@ -2511,6 +2533,13 @@ axe-core@^3.5.4:
resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-3.5.5.tgz#84315073b53fa3c0c51676c588d59da09a192227"
integrity sha512-5P0QZ6J5xGikH780pghEdbEKijCTrruK9KxtPZCFWUpef0f6GipO+xEZ5GKCb020mmqgbiNO6TcA55CriL784Q==
axios@^0.21.0:
version "0.21.0"
resolved "https://registry.npm.taobao.org/axios/download/axios-0.21.0.tgz#26df088803a2350dff2c27f96fef99fe49442aca"
integrity sha1-Jt8IiAOiNQ3/LCf5b++Z/klEKso=
dependencies:
follow-redirects "^1.10.0"
axobject-query@^2.1.2:
version "2.2.0"
resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be"
......@@ -5143,7 +5172,7 @@ flush-write-stream@^1.0.0:
inherits "^2.0.3"
readable-stream "^2.3.6"
follow-redirects@^1.0.0:
follow-redirects@^1.0.0, follow-redirects@^1.10.0:
version "1.13.0"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.0.tgz#b42e8d93a2a7eea5ed88633676d6597bc8e384db"
integrity sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==
......@@ -5547,6 +5576,18 @@ hex-color-regex@^1.1.0:
resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==
history@^4.9.0:
version "4.10.1"
resolved "https://registry.npm.taobao.org/history/download/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3"
integrity sha1-MzcaZeOoOyZ0NOKz87G0xYqtTPM=
dependencies:
"@babel/runtime" "^7.1.2"
loose-envify "^1.2.0"
resolve-pathname "^3.0.0"
tiny-invariant "^1.0.2"
tiny-warning "^1.0.0"
value-equal "^1.0.1"
hmac-drbg@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
......@@ -5556,7 +5597,7 @@ hmac-drbg@^1.0.0:
minimalistic-assert "^1.0.0"
minimalistic-crypto-utils "^1.0.1"
hoist-non-react-statics@^3.3.2:
hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.2:
version "3.3.2"
resolved "https://registry.npm.taobao.org/hoist-non-react-statics/download/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
integrity sha1-7OCsr3HWLClpwuxZ/v9CpLGoW0U=
......@@ -6259,6 +6300,11 @@ is-wsl@^2.1.1, is-wsl@^2.2.0:
dependencies:
is-docker "^2.0.0"
isarray@0.0.1:
version "0.0.1"
resolved "https://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=
isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
......@@ -7169,7 +7215,7 @@ loglevel@^1.6.8:
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.0.tgz#728166855a740d59d38db01cf46f042caa041bb0"
integrity sha512-i2sY04nal5jDcagM3FMfG++T69GEEM8CYuOfeOIvmXzOIcwE9a/CJPR0MFM97pYMj/u10lzz7/zd7+qwhrBTqQ==
loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0:
loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
......@@ -7394,6 +7440,14 @@ min-indent@^1.0.0:
resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869"
integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==
mini-create-react-context@^0.4.0:
version "0.4.1"
resolved "https://registry.npm.taobao.org/mini-create-react-context/download/mini-create-react-context-0.4.1.tgz?cache=0&sync_timestamp=1603392178687&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-create-react-context%2Fdownload%2Fmini-create-react-context-0.4.1.tgz#072171561bfdc922da08a60c2197a497cc2d1d5e"
integrity sha1-ByFxVhv9ySLaCKYMIZekl8wtHV4=
dependencies:
"@babel/runtime" "^7.12.1"
tiny-warning "^1.0.3"
mini-css-extract-plugin@0.11.3:
version "0.11.3"
resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.11.3.tgz#15b0910a7f32e62ffde4a7430cfefbd700724ea6"
......@@ -8187,6 +8241,13 @@ path-to-regexp@0.1.7:
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
path-to-regexp@^1.7.0:
version "1.8.0"
resolved "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-1.8.0.tgz?cache=0&sync_timestamp=1601400328354&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-to-regexp%2Fdownload%2Fpath-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a"
integrity sha1-iHs7qdhDk+h6CgufTLdWGYtTVIo=
dependencies:
isarray "0.0.1"
path-type@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73"
......@@ -9053,7 +9114,7 @@ prompts@^2.0.1:
kleur "^3.0.3"
sisteransi "^1.0.4"
prop-types@^15.5.10, prop-types@^15.7.2:
prop-types@^15.5.10, prop-types@^15.6.2, prop-types@^15.7.2:
version "15.7.2"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
......@@ -9658,7 +9719,7 @@ react-error-overlay@^6.0.8:
resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.8.tgz#474ed11d04fc6bda3af643447d85e9127ed6b5de"
integrity sha512-HvPuUQnLp5H7TouGq3kzBeioJmXms1wHy9EGjz2OURWBp4qZO6AfGEcnxts1D/CbwPLRAgTMPCEgYhA3sEM4vw==
react-is@^16.12.0, react-is@^16.7.0, react-is@^16.8.1:
react-is@^16.12.0, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1:
version "16.13.1"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
......@@ -9678,6 +9739,35 @@ react-refresh@^0.8.3:
resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f"
integrity sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==
react-router-dom@^5.2.0:
version "5.2.0"
resolved "https://registry.npm.taobao.org/react-router-dom/download/react-router-dom-5.2.0.tgz#9e65a4d0c45e13289e66c7b17c7e175d0ea15662"
integrity sha1-nmWk0MReEyieZsexfH4XXQ6hVmI=
dependencies:
"@babel/runtime" "^7.1.2"
history "^4.9.0"
loose-envify "^1.3.1"
prop-types "^15.6.2"
react-router "5.2.0"
tiny-invariant "^1.0.2"
tiny-warning "^1.0.0"
react-router@5.2.0:
version "5.2.0"
resolved "https://registry.npm.taobao.org/react-router/download/react-router-5.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router%2Fdownload%2Freact-router-5.2.0.tgz#424e75641ca8747fbf76e5ecca69781aa37ea293"
integrity sha1-Qk51ZByodH+/duXsyml4GqN+opM=
dependencies:
"@babel/runtime" "^7.1.2"
history "^4.9.0"
hoist-non-react-statics "^3.1.0"
loose-envify "^1.3.1"
mini-create-react-context "^0.4.0"
path-to-regexp "^1.7.0"
prop-types "^15.6.2"
react-is "^16.6.0"
tiny-invariant "^1.0.2"
tiny-warning "^1.0.0"
react-scripts@4.0.0:
version "4.0.0"
resolved "https://registry.npm.taobao.org/react-scripts/download/react-scripts-4.0.0.tgz?cache=0&sync_timestamp=1603464105402&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-scripts%2Fdownload%2Freact-scripts-4.0.0.tgz#36f3d84ffff708ac0618fd61e71eaaea11c26417"
......@@ -10041,6 +10131,11 @@ resolve-from@^5.0.0:
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
resolve-pathname@^3.0.0:
version "3.0.0"
resolved "https://registry.npm.taobao.org/resolve-pathname/download/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd"
integrity sha1-mdAiJNPPJjaJvsuzk7xWAxMCXc0=
resolve-url-loader@^3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-3.1.2.tgz#235e2c28e22e3e432ba7a5d4e305c59a58edfc08"
......@@ -11193,6 +11288,16 @@ tiny-emitter@^2.0.0:
resolved "https://registry.npm.taobao.org/tiny-emitter/download/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423"
integrity sha1-HRpW7fxRxD6GPLtTgqcjMONVVCM=
tiny-invariant@^1.0.2:
version "1.1.0"
resolved "https://registry.npm.taobao.org/tiny-invariant/download/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875"
integrity sha1-Y0xfjv3CdxS384bDXmdgmR0jCHU=
tiny-warning@^1.0.0, tiny-warning@^1.0.3:
version "1.0.3"
resolved "https://registry.npm.taobao.org/tiny-warning/download/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754"
integrity sha1-lKMNtFPfTGQ9D9VmBg1gqHXYR1Q=
tinycolor2@^1.4.1:
version "1.4.2"
resolved "https://registry.npm.taobao.org/tinycolor2/download/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803"
......@@ -11627,6 +11732,11 @@ validate-npm-package-license@^3.0.1:
spdx-correct "^3.0.0"
spdx-expression-parse "^3.0.0"
value-equal@^1.0.1:
version "1.0.1"
resolved "https://registry.npm.taobao.org/value-equal/download/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c"
integrity sha1-Hgt5THNMXAyt4XnEN9NW2TGjTWw=
vary@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment