mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-20 12:29:55 +08:00
Master react (#19150)
* chore(): bump to beta 8 * fix(): IonFabButton href fix * fix(react): support components with href attributes * fix(): Prep work to break router out * fix(): breaking react-router and react-core into own packages * chore(): moving view stuff out of react-core * chore(): dev build 8-1 * chore(): update to react beta 8 * chore(): fixes to deps * fix(): removing IonAnchor in favor of IonRouterLink * chore(): beta 9 release * refactor(react): treeshake, minify, api * wip * fix(): react dev builds * fix(): fixes to get app builds working again * fix(): removing tgz file * feat(): adding platform helper methods * fix(): don't map attributes to props * chore(): add test app * feat(): copy css folder from core * chore(): move rollup node resolve to devDependencies * fix(): expose setupConfig() * perf(): improve treeshaking * fix(): removing crypto from generateUniqueId * fix(): adding missing rollup dp * fix(): test cleanup and fixes to make tests pass * chore(): moving react to packages folder * fix(): fixing react build due to move to packages * feat(): adding missing IonInfiniteScrollContent component * chore(): add automated testing using cypress * fix(): adding option onDidDismiss to controller components * 0.0.10 react * wip * fix(): removing deprecated React calls * fix(): exporting setupConfig from core * chore(): bump to 4.8.0-rc.0 * chore(): updating test-app deps and fixing test * chore(): updates to react readme * fix(): exposing isPlatform * fix(react): support using class attribute for core components * fix(react): fixing react tests by removing the webcrypto * fix(react): supporting going back to pages with query strings * chore(): adding react changelog * chore(): react rc1 release
This commit is contained in:
20
packages/react-router/src/utils/LocationHistory.ts
Normal file
20
packages/react-router/src/utils/LocationHistory.ts
Normal file
@ -0,0 +1,20 @@
|
||||
import { Location as HistoryLocation } from 'history';
|
||||
|
||||
const RESTRICT_SIZE = 25;
|
||||
|
||||
export class LocationHistory {
|
||||
locationHistory: HistoryLocation[] = [];
|
||||
|
||||
add(location: HistoryLocation) {
|
||||
this.locationHistory.push(location);
|
||||
if(this.locationHistory.length > RESTRICT_SIZE) {
|
||||
this.locationHistory.splice(0, 10);
|
||||
}
|
||||
}
|
||||
|
||||
findLastLocation(url: string) {
|
||||
const reversedLocations = [...this.locationHistory].reverse();
|
||||
const last = reversedLocations.find(x => x.pathname.toLowerCase() === url.toLowerCase());
|
||||
return last;
|
||||
}
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
export const generateUniqueId = () => {
|
||||
export const generateUniqueId = (length: number = 10) => {
|
||||
const charPool = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
|
||||
const charArray: string[] = [];
|
||||
for(let i = 0; i < 10; i++) {
|
||||
for(let i = 0; i < length; i++) {
|
||||
charArray.push(charPool[Math.floor(Math.random() * charPool.length)]);
|
||||
}
|
||||
return charArray.join('');
|
||||
|
Reference in New Issue
Block a user