Fix up all <Spinner> import locations

Closes FOO-649
flag=none

Note to reviewers:  THIS LOOKS MUCH WORSE THAN IT IS!

Change the import location of the InstUI <Spinner>
component from the backward-compatible ui-elements to
ui-spinner. This touches a lot of files but because the
component itself works the same, nearly always this is
just a change to the imports in the module. Occasionally
I had to delete a class or fix up the deprecated "title"
prop.

This doesn't catch the stuff in packages/ ... I'll fix up
those in another commit.

Test plan:
* Just spot check some of these to make sure they still
  work? Probably isn't necessary to check every single
  one of these since the risk here is very very low.

Change-Id: I7b27590728859a69e8f44f6b3fd4e62e6e6fcf15
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/240804
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Charley Kline <ckline@instructure.com>
This commit is contained in:
Charley Kline 2020-06-19 10:26:59 -05:00
parent 560a5be0fb
commit a7d1f56a87
87 changed files with 224 additions and 208 deletions

View File

@ -17,7 +17,7 @@
import React from 'react'
import ReactDOM from 'react-dom'
import {Spinner} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import $ from 'jquery'
import _ from 'underscore'
import Backbone from 'Backbone'

View File

@ -19,7 +19,7 @@
import React, {Component} from 'react'
import {Billboard} from '@instructure/ui-billboard'
import {Pagination} from '@instructure/ui-pagination'
import {Spinner} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {array, func, string, shape, oneOf} from 'prop-types'
import I18n from 'i18n!account_course_user_search'
import {View} from '@instructure/ui-layout'

View File

@ -20,7 +20,8 @@ import React, {Component} from 'react'
import I18n from 'i18n!security_panel'
import {connect} from 'react-redux'
import {bool, oneOf, string, func, number, arrayOf, element} from 'prop-types'
import {Heading, Text, Spinner} from '@instructure/ui-elements'
import {Heading, Text} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {View, Grid} from '@instructure/ui-layout'
import {Checkbox} from '@instructure/ui-forms'
import {

View File

@ -18,7 +18,8 @@
import React, {useReducer, useCallback} from 'react'
import I18n from 'i18n!csp_violation_tray'
import {Heading, Spinner} from '@instructure/ui-elements'
import {Heading} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {Alert} from '@instructure/ui-alerts'
import {CloseButton} from '@instructure/ui-buttons'
import {View} from '@instructure/ui-layout'

View File

@ -21,7 +21,8 @@ import I18n from 'i18n!security_panel'
import {connect} from 'react-redux'
import {arrayOf, bool, func, objectOf, oneOf, shape, string, number, element} from 'prop-types'
import {Alert} from '@instructure/ui-alerts'
import {Heading, List, Table, Spinner} from '@instructure/ui-elements'
import {Heading, List, Table} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {TextInput} from '@instructure/ui-forms'
import {Flex, View} from '@instructure/ui-layout'
import {Button} from '@instructure/ui-buttons'

View File

@ -21,7 +21,8 @@ import React from 'react'
import {bool, func, shape, arrayOf, oneOfType} from 'prop-types'
import {Modal} from '@instructure/ui-overlays'
import {CloseButton, Button} from '@instructure/ui-buttons'
import {Heading, Spinner} from '@instructure/ui-elements'
import {Heading} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {ScreenReaderContent} from '@instructure/ui-a11y'
import {
courseParamsShape,

View File

@ -22,7 +22,8 @@ import {func, bool, number} from 'prop-types'
import {connect} from 'react-redux'
import {bindActionCreators} from 'redux'
import {Spinner, Heading, Text} from '@instructure/ui-elements'
import {Heading, Text} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {View} from '@instructure/ui-layout'
import {ScreenReaderContent} from '@instructure/ui-a11y'
import {Pagination} from '@instructure/ui-pagination'
@ -208,7 +209,4 @@ const connectActions = dispatch =>
dispatch
)
export const ConnectedAnnouncementsIndex = connect(
connectState,
connectActions
)(AnnouncementsIndex)
export const ConnectedAnnouncementsIndex = connect(connectState, connectActions)(AnnouncementsIndex)

View File

@ -22,7 +22,7 @@ import {omit} from 'lodash'
import {Button} from '@instructure/ui-buttons'
import {IconCheckMarkSolid} from '@instructure/ui-icons'
import {PresentationContent, ScreenReaderContent} from '@instructure/ui-a11y'
import {Spinner} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import I18n from 'i18n!assignment_grade_summary'
import {FAILURE, STARTED, SUCCESS} from '../../grades/GradeActions'

View File

@ -21,7 +21,7 @@ import {bool, func, oneOf, shape} from 'prop-types'
import {Button} from '@instructure/ui-buttons'
import {IconCheckMarkSolid} from '@instructure/ui-icons'
import {PresentationContent} from '@instructure/ui-a11y'
import {Spinner} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import I18n from 'i18n!assignment_grade_summary'
import {FAILURE, STARTED, SUCCESS} from '../assignment/AssignmentActions'

View File

@ -21,7 +21,7 @@ import {bool, func, oneOf} from 'prop-types'
import {Button} from '@instructure/ui-buttons'
import {IconCheckMarkSolid} from '@instructure/ui-icons'
import {PresentationContent} from '@instructure/ui-a11y'
import {Spinner} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import I18n from 'i18n!assignment_grade_summary'
import {

View File

@ -1,29 +0,0 @@
/*
* Copyright (C) 2019 - present Instructure, Inc.
*
* This file is part of Canvas.
*
* Canvas is free software: you can redistribute it and/or modify it under
* the terms of the GNU Affero General Public License as published by the Free
* Software Foundation, version 3 of the License.
*
* Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
* details.
*
* You should have received a copy of the GNU Affero General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import I18n from 'i18n!assignments_2'
import React from 'react'
import {Spinner} from '@instructure/ui-elements'
import {View} from '@instructure/ui-layout'
export default function LoadingIndicator() {
return (
<View as="div" height="100%" width="100%" textAlign="center">
<Spinner renderTitle={I18n.t('Loading')} size="large" margin="0 0 0 medium" />
</View>
)
}

View File

@ -21,7 +21,7 @@ import {bool, func, string} from 'prop-types'
import {FormField} from '@instructure/ui-form-field'
import {friendlyTypeName, getCurrentSubmissionType} from '../helpers/SubmissionHelpers'
import I18n from 'i18n!assignments_2_attempt_tab'
import LoadingIndicator from '../../shared/LoadingIndicator'
import LoadingIndicator from 'jsx/shared/LoadingIndicator'
import LockedAssignment from './LockedAssignment'
import React, {Component, lazy, Suspense} from 'react'
import {Submission} from '../graphqlData/Submission'

View File

@ -18,7 +18,7 @@
import {getIconByType} from '../../../../shared/helpers/mimeClassIconHelper'
import I18n from 'i18n!assignments_2'
import LoadingIndicator from '../../../shared/LoadingIndicator'
import LoadingIndicator from 'jsx/shared/LoadingIndicator'
import previewUnavailable from '../../SVG/PreviewUnavailable.svg'
import PropTypes from 'prop-types'
import React, {Component} from 'react'

View File

@ -24,7 +24,7 @@ import elideString from '../../../../shared/helpers/elideString'
import {func} from 'prop-types'
import {getFileThumbnail} from '../../../../shared/helpers/fileHelper'
import I18n from 'i18n!assignments_2_file_upload'
import LoadingIndicator from '../../../shared/LoadingIndicator'
import LoadingIndicator from 'jsx/shared/LoadingIndicator'
import MoreOptions from './MoreOptions'
import React, {Component} from 'react'
import {Submission} from '../../graphqlData/Submission'

View File

@ -22,7 +22,7 @@ import closedCaptionLanguages from '../../../../shared/closedCaptionLanguages'
import elideString from '../../../../shared/helpers/elideString'
import I18n from 'i18n!assignments_2_media_attempt'
import {IconTrashLine, IconAttachMediaLine} from '@instructure/ui-icons'
import LoadingIndicator from '../../../shared/LoadingIndicator'
import LoadingIndicator from 'jsx/shared/LoadingIndicator'
import React from 'react'
import {ScreenReaderContent} from '@instructure/ui-a11y'
import {Submission} from '../../graphqlData/Submission'

View File

@ -23,7 +23,7 @@ import errorShipUrl from 'jsx/shared/svg/ErrorShip.svg'
import FileSelectTable from './FileSelectTable'
import GenericErrorPage from '../../../../../../shared/components/GenericErrorPage/index'
import I18n from 'i18n!assignments_2_MoreOptions_CanvasFiles'
import LoadingIndicator from '../../../../../shared/LoadingIndicator'
import LoadingIndicator from 'jsx/shared/LoadingIndicator'
import parseLinkHeader from '../../../../../../shared/parseLinkHeader'
import React from 'react'

View File

@ -21,7 +21,7 @@ import errorShipUrl from 'jsx/shared/svg/ErrorShip.svg'
import {ExternalTool} from '../../../graphqlData/ExternalTool'
import GenericErrorPage from '../../../../../shared/components/GenericErrorPage/index'
import I18n from 'i18n!assignments_2_initial_query'
import LoadingIndicator from '../../../../shared/LoadingIndicator'
import LoadingIndicator from 'jsx/shared/LoadingIndicator'
import {useQuery} from 'react-apollo'
import React from 'react'
import Tools from './Tools'

View File

@ -21,7 +21,7 @@ import errorShipUrl from 'jsx/shared/svg/ErrorShip.svg'
import {EXTERNAL_TOOLS_QUERY} from '../../../graphqlData/Queries'
import GenericErrorPage from '../../../../../shared/components/GenericErrorPage/index'
import I18n from 'i18n!assignments_2_MoreOptions'
import LoadingIndicator from '../../../../shared/LoadingIndicator'
import LoadingIndicator from 'jsx/shared/LoadingIndicator'
import {Query} from 'react-apollo'
import React from 'react'
import UserGroupsQuery from './UserGroupsQuery'

View File

@ -24,7 +24,7 @@ import {Submission} from '../../graphqlData/Submission'
import {Billboard} from '@instructure/ui-billboard'
import {Button} from '@instructure/ui-buttons'
import {IconDocumentLine, IconTextLine, IconTrashLine} from '@instructure/ui-icons'
import LoadingIndicator from '../../../shared/LoadingIndicator'
import LoadingIndicator from 'jsx/shared/LoadingIndicator'
import {ScreenReaderContent} from '@instructure/ui-a11y'
import {View} from '@instructure/ui-layout'
import {direction} from '../../../../shared/helpers/rtlHelper'

View File

@ -31,7 +31,7 @@ import closedCaptionLanguages from '../../../../shared/closedCaptionLanguages'
import {CREATE_SUBMISSION_COMMENT} from '../../graphqlData/Mutations'
import {DEFAULT_ICON} from '../../../../shared/helpers/mimeClassIconHelper'
import FileList from '../../../shared/FileList'
import LoadingIndicator from '../../../shared/LoadingIndicator'
import LoadingIndicator from 'jsx/shared/LoadingIndicator'
import {SUBMISSION_COMMENT_QUERY} from '../../graphqlData/Queries'
import {submissionCommentAttachmentsUpload} from '../../../../shared/upload_file'
import {Submission} from '../../graphqlData/Submission'

View File

@ -22,7 +22,7 @@ import ErrorBoundary from '../../../../shared/components/ErrorBoundary'
import errorShipUrl from 'jsx/shared/svg/ErrorShip.svg'
import GenericErrorPage from '../../../../shared/components/GenericErrorPage/index'
import I18n from 'i18n!assignments_2'
import LoadingIndicator from '../../../shared/LoadingIndicator'
import LoadingIndicator from 'jsx/shared/LoadingIndicator'
import {Button} from '@instructure/ui-buttons'
import React, {useState} from 'react'
import {SUBMISSION_COMMENT_QUERY} from '../../graphqlData/Queries'

View File

@ -25,7 +25,7 @@ import {getCurrentAttempt} from './Attempt'
import GradeDisplay from './GradeDisplay'
import I18n from 'i18n!assignments_2'
import LoadingIndicator from '../../shared/LoadingIndicator'
import LoadingIndicator from 'jsx/shared/LoadingIndicator'
import React, {lazy, Suspense, useState} from 'react'
import SubmissionManager from './SubmissionManager'
import {Submission} from '../graphqlData/Submission'

View File

@ -19,7 +19,7 @@ import {Assignment} from '../graphqlData/Assignment'
import errorShipUrl from 'jsx/shared/svg/ErrorShip.svg'
import GenericErrorPage from '../../../shared/components/GenericErrorPage/index'
import I18n from 'i18n!assignments_2'
import LoadingIndicator from '../../shared/LoadingIndicator'
import LoadingIndicator from 'jsx/shared/LoadingIndicator'
import React from 'react'
import RubricTab from './RubricTab'
import {RUBRIC_QUERY} from '../graphqlData/Queries'

View File

@ -23,7 +23,7 @@ import Header from './Header'
import I18n from 'i18n!assignments_2_student_content'
import MissingPrereqs from './MissingPrereqs'
import React, {Suspense, lazy} from 'react'
import {Spinner} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {Submission} from '../graphqlData/Submission'
const LoggedOutTabs = lazy(() => import('./LoggedOutTabs'))

View File

@ -20,7 +20,7 @@ import errorShipUrl from 'jsx/shared/svg/ErrorShip.svg'
import GenericErrorPage from '../../../shared/components/GenericErrorPage/index'
import I18n from 'i18n!assignments_2_initial_query'
import {LOGGED_OUT_STUDENT_VIEW_QUERY, STUDENT_VIEW_QUERY} from '../graphqlData/Queries'
import LoadingIndicator from '../../shared/LoadingIndicator'
import LoadingIndicator from 'jsx/shared/LoadingIndicator'
import {useQuery} from 'react-apollo'
import React from 'react'
import {string} from 'prop-types'

View File

@ -23,7 +23,7 @@ import Header from './Header'
import {Query} from 'react-apollo'
import React, {Suspense, lazy} from 'react'
import {shape} from 'prop-types'
import {Spinner} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {SUBMISSION_HISTORIES_QUERY} from '../graphqlData/Queries'
import ViewManager from './ViewManager'

View File

@ -23,7 +23,7 @@ import {Button, CloseButton} from '@instructure/ui-buttons'
import {CREATE_SUBMISSION, CREATE_SUBMISSION_DRAFT} from '../graphqlData/Mutations'
import {friendlyTypeName, multipleTypesDrafted} from '../helpers/SubmissionHelpers'
import I18n from 'i18n!assignments_2_file_upload'
import LoadingIndicator from '../../shared/LoadingIndicator'
import LoadingIndicator from 'jsx/shared/LoadingIndicator'
import {Modal} from '@instructure/ui-overlays'
import {Mutation} from 'react-apollo'
import PropTypes from 'prop-types'

View File

@ -21,7 +21,8 @@ import {bool, func, string, shape} from 'prop-types'
import I18n from 'i18n!assignments_2'
import {Button, CloseButton} from '@instructure/ui-buttons'
import {Heading, Spinner} from '@instructure/ui-elements'
import {Heading} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {Mask, Modal} from '@instructure/ui-overlays'
import {View} from '@instructure/ui-layout'

View File

@ -19,7 +19,7 @@
import React from 'react'
import {func} from 'prop-types'
import {Query} from 'react-apollo'
import {Spinner} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {View} from '@instructure/ui-layout'
import I18n from 'i18n!assignments_2'
@ -38,7 +38,7 @@ export default function StudentSearchQuery({variables, children}) {
if (loading) {
return (
<View as="div" textAlign="center" padding="large 0">
<Spinner size="large" renderTitle={I18n.t('Loading...')} />
<Spinner size="large" renderTitle={I18n.t('Loading')} />
</View>
)
} else if (error) {

View File

@ -64,7 +64,7 @@ beforeEach(() => jest.useFakeTimers())
describe('StudentsSearcher', () => {
it('renders a spinner while loading', () => {
const {getByText} = renderStudentsSearcher()
expect(getByText('Loading...')).toBeInTheDocument()
expect(getByText('Loading')).toBeInTheDocument()
})
it('shows action buttons when assignment is published', () => {

View File

@ -19,7 +19,7 @@
import React from 'react'
import {string} from 'prop-types'
import {Query} from 'react-apollo'
import {Spinner} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {View} from '@instructure/ui-layout'
import I18n from 'i18n!assignments_2'
@ -38,7 +38,7 @@ export default function TeacherQuery({assignmentLid}) {
if (loading) {
return (
<View as="div" textAlign="center" padding="large 0">
<Spinner size="large" renderTitle={I18n.t('Loading...')} />
<Spinner size="large" renderTitle={I18n.t('Loading')} />
</View>
)
} else if (error) {

View File

@ -34,7 +34,8 @@ import {Alert} from '@instructure/ui-alerts'
import {Mask} from '@instructure/ui-overlays'
import {Portal} from '@instructure/ui-portal'
import {ScreenReaderContent} from '@instructure/ui-a11y'
import {Spinner, Text} from '@instructure/ui-elements'
import {Text} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {TeacherAssignmentShape, SAVE_ASSIGNMENT} from '../assignmentData'
import Header from './Header'

View File

@ -20,7 +20,8 @@ import React, {useState} from 'react'
import I18n from 'i18n!mutationActivity'
import {Button} from '@instructure/ui-buttons'
import {DateInput, TextInput} from '@instructure/ui-forms'
import {Heading, Spinner, Table} from '@instructure/ui-elements'
import {Heading, Table} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {ScreenReaderContent} from '@instructure/ui-a11y'
import {View} from '@instructure/ui-layout'
@ -176,7 +177,7 @@ const AuditLogResults = ({assetString, startDate, endDate, pageSize}) => {
return <p>{I18n.t('Something went wrong.')}</p>
}
if (loading || !data) {
return <Spinner renderTitle={I18n.t('Loading...')} />
return <Spinner renderTitle={I18n.t('Loading')} />
}
const {nodes: logEntries, pageInfo} = data.auditLogs.mutationLogs

View File

@ -22,7 +22,8 @@ import React from 'react'
import PropTypes from 'prop-types'
import 'compiled/jquery.rails_flash_notifications'
import {Text, Table, Spinner} from '@instructure/ui-elements'
import {Text, Table} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {ScreenReaderContent, PresentationContent} from '@instructure/ui-a11y'
import {Button} from '@instructure/ui-buttons'
import {IconXSolid} from '@instructure/ui-icons'

View File

@ -26,7 +26,8 @@ import {bindActionCreators} from 'redux'
import select from '../../shared/select'
import 'compiled/jquery.rails_flash_notifications'
import {Heading, Text, Spinner} from '@instructure/ui-elements'
import {Heading, Text} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {Alert} from '@instructure/ui-alerts'
import {PresentationContent} from '@instructure/ui-a11y'

View File

@ -22,7 +22,8 @@ import PropTypes from 'prop-types'
import React, {Component} from 'react'
import {connect} from 'react-redux'
import {Text, Spinner} from '@instructure/ui-elements'
import {Text} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {PresentationContent} from '@instructure/ui-a11y'
import ChangeLogRow, {ChangeRow} from './ChangeLogRow'
@ -91,7 +92,4 @@ const connectState = state => ({
migration: state.selectedChangeLog && state.changeLogs[state.selectedChangeLog].data
})
const connectActions = () => ({})
export const ConnectedChildChangeLog = connect(
connectState,
connectActions
)(ChildChangeLog)
export const ConnectedChildChangeLog = connect(connectState, connectActions)(ChildChangeLog)

View File

@ -21,7 +21,8 @@ import $ from 'jquery'
import React from 'react'
import PropTypes from 'prop-types'
import {ToggleDetails} from '@instructure/ui-toggle-details'
import {Text, Spinner} from '@instructure/ui-elements'
import {Text} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import 'compiled/jquery.rails_flash_notifications'
import propTypes from '../propTypes'
import CourseFilter from './CourseFilter'

View File

@ -24,7 +24,8 @@ import {bindActionCreators} from 'redux'
import select from '../../shared/select'
import {Button} from '@instructure/ui-buttons'
import {Text, Spinner} from '@instructure/ui-elements'
import {Text} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {Tooltip} from '@instructure/ui-overlays'
import {PresentationContent} from '@instructure/ui-a11y'

View File

@ -23,7 +23,8 @@ import {bindActionCreators} from 'redux'
import I18n from 'i18n!blueprint_settingsSyncHistory'
import select from '../../shared/select'
import {Text, Spinner} from '@instructure/ui-elements'
import {Text} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import SyncHistoryItem from './SyncHistoryItem'
import actions from '../actions'
@ -128,7 +129,4 @@ const connectState = state => {
)
}
const connectActions = dispatch => bindActionCreators(actions, dispatch)
export const ConnectedSyncHistory = connect(
connectState,
connectActions
)(SyncHistory)
export const ConnectedSyncHistory = connect(connectState, connectActions)(SyncHistory)

View File

@ -21,7 +21,7 @@ import ReactDOM from 'react-dom'
import I18n from 'i18n!account_settings_jsx_bundle'
import FeatureFlagAdminView from 'compiled/views/feature_flags/FeatureFlagAdminView'
import CustomHelpLinkSettings from '../custom_help_link_settings/CustomHelpLinkSettings'
import {Spinner} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {View} from '@instructure/ui-layout'
import 'account_settings'
import 'compiled/modules/account_quota_settings'

View File

@ -20,7 +20,8 @@ import I18n from 'i18n!announcements_on_home_page'
import React from 'react'
import ReactDOM from 'react-dom'
import axios from 'axios'
import {Spinner, Heading} from '@instructure/ui-elements'
import {Heading} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {View} from '@instructure/ui-layout'
import AnnouncementRow from '../shared/components/AnnouncementRow'
import ready from '@instructure/ready'
@ -45,18 +46,26 @@ if (ENV.SHOW_ANNOUNCEMENTS) {
include: ['sections', 'sections_user_count']
}
axios.get(url, {params}).then(response => {
ReactDOM.render(
<View display="block" margin="0 0 medium">
<Heading level="h3" margin="0 0 small">
{I18n.t('Recent Announcements')}
</Heading>
{response.data.map(announcement => (
<AnnouncementRow key={announcement.id} announcement={announcement} />
))}
</View>,
container
)
})
axios
.get(url, {params})
.then(response => {
ReactDOM.render(
<View display="block" margin="0 0 medium">
<Heading level="h3" margin="0 0 small">
{I18n.t('Recent Announcements')}
</Heading>
{response.data.map(announcement => (
<AnnouncementRow key={announcement.id} announcement={announcement} />
))}
</View>,
container
)
})
.catch(error => {
/* eslint-disable no-console */
console.error('Error retrieving home page announcements')
console.error(error)
/* eslint-enable no-console */
})
})
}

View File

@ -18,7 +18,7 @@
import React from 'react'
import PropTypes from 'prop-types'
import {Spinner} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import I18n from 'i18n!cyoe_assignment_sidebar_breakdown_graphs'
import {transformScore} from '../../shared/conditional_release/score'
import BarGraph from './breakdown-graph-bar'

View File

@ -19,7 +19,7 @@
import React from 'react'
import PropTypes from 'prop-types'
import classNames from 'classnames'
import {Spinner} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import I18n from 'i18n!cyoe_assignment_sidebar_student_details_view'
import {i18nGrade} from '../../shared/conditional_release/score'
import StudentAssignmentItem from './student-assignment-item'

View File

@ -23,7 +23,7 @@ import ContentHeading from './ContentHeading'
import ReceivedTable from './ReceivedTable'
import PreviewModal from './PreviewModal'
import {Text} from '@instructure/ui-text'
import {Spinner} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import useFetchApi from 'jsx/shared/effects/useFetchApi'
import doFetchApi from 'jsx/shared/effects/doFetchApi'
import Paginator from 'jsx/shared/components/Paginator'

View File

@ -26,7 +26,8 @@ import Rating from './Rating'
import SectionInfo from './SectionInfo'
import SubmissionProgressBars from './SubmissionProgressBars'
import MessageStudents from '../shared/MessageStudents'
import {Heading, Text, Spinner} from '@instructure/ui-elements'
import {Heading, Text} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {Button, CloseButton} from '@instructure/ui-buttons'
import {ScreenReaderContent} from '@instructure/ui-a11y'
import {Tray} from '@instructure/ui-overlays'

View File

@ -20,7 +20,7 @@ import React, {Component} from 'react'
import I18n from 'i18n!course_settings'
import {bool, func, shape, string} from 'prop-types'
import {Checkbox} from '@instructure/ui-forms'
import {Spinner} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {Tooltip} from '@instructure/ui-overlays'
import {showFlashError} from '../../shared/FlashAlert'

View File

@ -19,7 +19,7 @@
import React from 'react'
import PropTypes from 'prop-types'
import I18n from 'i18n!course_images'
import {Spinner} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {Tabs} from '@instructure/ui-tabs'
import {FileDrop} from '@instructure/ui-file-drop'
import {Billboard} from '@instructure/ui-billboard'

View File

@ -20,7 +20,7 @@ import React from 'react'
import {IconMoreLine, IconEditLine, IconTrashLine} from '@instructure/ui-icons'
import {Button} from '@instructure/ui-buttons'
import {Menu} from '@instructure/ui-menu'
import {Spinner} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import Modal from '../../shared/components/InstuiModal'
import I18n from 'i18n!course_images'
import Actions from '../actions'

View File

@ -19,7 +19,8 @@
import I18n from 'i18n!external_content.success'
import React from 'react'
import ReactDOM from 'react-dom'
import {Spinner, Text} from '@instructure/ui-elements'
import {Text} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {Flex} from '@instructure/ui-layout'
export class RetrievingContent extends React.Component {

View File

@ -17,7 +17,8 @@
*/
import {Button} from '@instructure/ui-buttons'
import {Heading, Spinner} from '@instructure/ui-elements'
import {Heading} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {TabList} from '@instructure/ui-tabs'
import {View} from '@instructure/ui-layout'
@ -97,13 +98,15 @@ class DeveloperKeysApp extends React.Component {
} = this.props
const callBack = this.inheritedTableRef.createSetFocusCallback()
getRemainingInheritedDeveloperKeys(inheritedNextPage, [], callBack)(dispatch).then(
foundActiveKey => {
if (!foundActiveKey) {
this.focusInheritedTab()
}
getRemainingInheritedDeveloperKeys(
inheritedNextPage,
[],
callBack
)(dispatch).then(foundActiveKey => {
if (!foundActiveKey) {
this.focusInheritedTab()
}
)
})
}
showMoreInheritedButton() {

View File

@ -20,7 +20,8 @@ import I18n from 'i18n!react_developer_keys'
import $ from 'jquery'
import {CloseButton, Button} from '@instructure/ui-buttons'
import {Heading, Spinner} from '@instructure/ui-elements'
import {Heading} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {Modal} from '@instructure/ui-overlays'
import {View} from '@instructure/ui-layout'
import React from 'react'

View File

@ -26,7 +26,8 @@ import {TextInput} from '@instructure/ui-text-input'
import {Grid, View} from '@instructure/ui-layout'
import {IconWarningLine, IconSearchLine, IconInfoLine} from '@instructure/ui-icons'
import {ScreenReaderContent} from '@instructure/ui-a11y'
import {Spinner, Text} from '@instructure/ui-elements'
import {Text} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {Tooltip} from '@instructure/ui-tooltip'
import ScopesList from './ScopesList'

View File

@ -21,7 +21,8 @@ import React, {Component} from 'react'
import {func, bool} from 'prop-types'
import {Button} from '@instructure/ui-buttons'
import {Heading, Spinner} from '@instructure/ui-elements'
import {Heading} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {Checkbox, CheckboxGroup} from '@instructure/ui-forms'
import Modal from '../../shared/components/InstuiModal'
import {ScreenReaderContent} from '@instructure/ui-a11y'

View File

@ -26,7 +26,8 @@ import HTML5Backend from 'react-dnd-html5-backend'
import {View} from '@instructure/ui-layout'
import {ScreenReaderContent} from '@instructure/ui-a11y'
import {Spinner, Heading, Text} from '@instructure/ui-elements'
import {Heading, Text} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import DirectShareCourseTray from 'jsx/shared/direct_share/DirectShareCourseTray'
import DirectShareUserModal from 'jsx/shared/direct_share/DirectShareUserModal'
@ -326,8 +327,5 @@ const connectActions = dispatch =>
dispatch
)
export const ConnectedDiscussionsIndex = DragDropContext(HTML5Backend)(
connect(
connectState,
connectActions
)(DiscussionsIndex)
connect(connectState, connectActions)(DiscussionsIndex)
)

View File

@ -19,7 +19,8 @@
import React from 'react'
import axios from 'axios'
import I18n from 'i18n!feature_flags'
import {Text, Spinner} from '@instructure/ui-elements'
import {Text} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {Button} from '@instructure/ui-buttons'
import {View} from '@instructure/ui-layout'
import {Tooltip} from '@instructure/ui-overlays'

View File

@ -23,7 +23,8 @@ import {View, Grid} from '@instructure/ui-layout'
import {FormFieldGroup} from '@instructure/ui-form-field'
import {NumberInput} from '@instructure/ui-number-input'
import {PresentationContent, ScreenReaderContent} from '@instructure/ui-a11y'
import {Spinner, Text} from '@instructure/ui-elements'
import {Text} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {Checkbox} from '@instructure/ui-forms'
import CanvasSelect from '../../../shared/components/CanvasSelect'

View File

@ -20,7 +20,8 @@ import React from 'react'
import {arrayOf, bool, func, number, oneOf, shape, string} from 'prop-types'
import I18n from 'i18n!gradebook'
import {Alert} from '@instructure/ui-alerts'
import {Avatar, Heading, Spinner, Text} from '@instructure/ui-elements'
import {Avatar, Heading, Text} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {Button, CloseButton} from '@instructure/ui-buttons'
import {View} from '@instructure/ui-layout'
import {Tray} from '@instructure/ui-overlays'

View File

@ -21,7 +21,7 @@ import {arrayOf, bool, func, shape, string} from 'prop-types'
import {Button} from '@instructure/ui-buttons'
import {Flex, View} from '@instructure/ui-layout'
import {Spinner} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import I18n from 'i18n!hide_assignment_grades_tray'

View File

@ -20,7 +20,8 @@ import React from 'react'
import {arrayOf, bool, func, number, shape, string} from 'prop-types'
import {AccessibleContent} from '@instructure/ui-a11y'
import {Badge, Spinner, Text} from '@instructure/ui-elements'
import {Badge, Text} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {Button} from '@instructure/ui-buttons'
import {Flex, View} from '@instructure/ui-layout'

View File

@ -21,7 +21,7 @@ import createReactClass from 'create-react-class'
import ReactDOM from 'react-dom'
import $ from 'jquery'
import I18n from 'i18n!student_groups'
import {Spinner} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import UserCollection from 'compiled/collections/UserCollection'
import ContextGroupCollection from 'compiled/collections/ContextGroupCollection'
import BackboneState from './mixins/BackboneState'
@ -159,7 +159,10 @@ const StudentView = createReactClass({
},
_removeUser(groupModel, userId) {
groupModel.set('users', groupModel.get('users').filter(u => u.id !== userId))
groupModel.set(
'users',
groupModel.get('users').filter(u => u.id !== userId)
)
// If user was a leader, unset the leader attribute.
const leader = groupModel.get('leader')
if (leader && leader.id === userId) {

View File

@ -20,7 +20,8 @@ import React from 'react'
import {bool, arrayOf, shape, string, func} from 'prop-types'
import I18n from 'i18n!HelpLinks'
import {Link} from '@instructure/ui-link'
import {List, Spinner, Text, Pill} from '@instructure/ui-elements'
import {List, Text, Pill} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import FeaturedHelpLink from './FeaturedHelpLink'
import {View} from '@instructure/ui-view'
import {Flex} from '@instructure/ui-flex'

View File

@ -20,7 +20,8 @@ import I18n from 'i18n!modules'
import React from 'react'
import {Grid} from '@instructure/ui-layout'
import {Spinner, Text} from '@instructure/ui-elements'
import {Text} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
export default function ModuleDuplicationSpinner(_props) {
return (

View File

@ -20,7 +20,8 @@ import React from 'react'
import {shape, object, func, string, oneOfType, arrayOf, node} from 'prop-types'
import {ScreenReaderContent} from '@instructure/ui-a11y'
import {View, Flex} from '@instructure/ui-layout'
import {Heading, List, Spinner, Text, Avatar, Badge} from '@instructure/ui-elements'
import {Heading, List, Text, Avatar, Badge} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {Button} from '@instructure/ui-buttons'
import {ToggleDetails} from '@instructure/ui-toggle-details'
import {

View File

@ -23,7 +23,7 @@ import {func} from 'prop-types'
import {Tray} from '@instructure/ui-overlays'
import {CloseButton} from '@instructure/ui-buttons'
import {View} from '@instructure/ui-view'
import {Spinner} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import UnreadCounts from './UnreadCounts'
import preventDefault from 'compiled/fn/preventDefault'
import parseLinkHeader from 'compiled/fn/parseLinkHeader'
@ -395,7 +395,7 @@ export default class Navigation extends React.Component {
<Spinner
size="large"
margin="large auto"
renderTitle={() => I18n.t('...Loading')}
renderTitle={() => I18n.t('Loading')}
/>
</View>
}

View File

@ -20,7 +20,8 @@ import I18n from 'i18n!AccounntsTray'
import React from 'react'
import {bool, arrayOf, shape, string} from 'prop-types'
import {View} from '@instructure/ui-layout'
import {Heading, List, Spinner} from '@instructure/ui-elements'
import {Heading, List} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {Link} from '@instructure/ui-link'
export default function AccountsTray({accounts, hasLoaded}) {

View File

@ -20,7 +20,8 @@ import I18n from 'i18n!CoursesTray'
import React from 'react'
import {bool, arrayOf, shape, string} from 'prop-types'
import {View} from '@instructure/ui-layout'
import {Heading, List, Spinner, Text} from '@instructure/ui-elements'
import {Heading, List, Text} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {Link} from '@instructure/ui-link'
const UNPUBLISHED = 'unpublished'

View File

@ -20,7 +20,8 @@ import I18n from 'i18n!GroupsTray'
import React from 'react'
import {bool, arrayOf, shape, string} from 'prop-types'
import {View} from '@instructure/ui-layout'
import {Heading, List, Spinner} from '@instructure/ui-elements'
import {Heading, List} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {Link} from '@instructure/ui-link'
export default function GroupsTray({groups, hasLoaded}) {

View File

@ -19,7 +19,8 @@
import I18n from 'i18n!ProfileTray'
import React from 'react'
import {arrayOf, bool, object, shape, string} from 'prop-types'
import {Avatar, Badge, Heading, List, Text, Spinner} from '@instructure/ui-elements'
import {Avatar, Badge, Heading, List, Text} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {Link} from '@instructure/ui-link'
import {View} from '@instructure/ui-layout'
import LogoutButton from '../LogoutButton'

View File

@ -20,7 +20,8 @@ import React, {Component} from 'react'
import PropTypes from 'prop-types'
import ReactDOM from 'react-dom'
import I18n from 'i18n!OutcomesImporter'
import {Spinner, Heading, Text} from '@instructure/ui-elements'
import {Heading, Text} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {showFlashAlert} from '../shared/FlashAlert'
import * as apiClient from './apiClient'

View File

@ -26,7 +26,8 @@ import {roleIsCourseBaseRole} from '../helper/utils'
import {Button} from '@instructure/ui-buttons'
import {Flex, View} from '@instructure/ui-layout'
import {FormField} from '@instructure/ui-form-field'
import {Heading, Spinner, Text} from '@instructure/ui-elements'
import {Heading, Text} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {IconXSolid} from '@instructure/ui-icons'
import {TextInput} from '@instructure/ui-forms'
import {Tray} from '@instructure/ui-overlays'
@ -251,7 +252,4 @@ const mapDispatchToProps = {
hideTray: actions.hideAllTrays
}
export const ConnectedAddTray = connect(
mapStateToProps,
mapDispatchToProps
)(AddTray)
export const ConnectedAddTray = connect(mapStateToProps, mapDispatchToProps)(AddTray)

View File

@ -20,7 +20,8 @@ import I18n from 'i18n!generate_pairing_code'
import React, {Component} from 'react'
import {Button, CloseButton} from '@instructure/ui-buttons'
import {Modal} from '@instructure/ui-overlays'
import {Heading, Text, Spinner} from '@instructure/ui-elements'
import {Heading, Text} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {IconGroupLine} from '@instructure/ui-icons'
import {PresentationContent} from '@instructure/ui-a11y'
import axios from 'axios'

View File

@ -24,7 +24,8 @@ import {Button} from '@instructure/ui-buttons'
import {IconPlusLine} from '@instructure/ui-icons'
import I18n from 'i18n!ProficiencyTable'
import {PresentationContent, ScreenReaderContent} from '@instructure/ui-a11y'
import {Spinner, Table} from '@instructure/ui-elements'
import {Table} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import ProficiencyRating from 'jsx/rubrics/ProficiencyRating'
import uuid from 'uuid/v1'
import _ from 'underscore'

View File

@ -22,12 +22,13 @@ import FlickrActions from './actions/FlickrActions'
import FlickrStore from './stores/FlickrStore'
import FlickrImage from './FlickrImage'
import SVGWrapper from './SVGWrapper'
import {Spinner, Text} from '@instructure/ui-elements'
import {Text} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
export default class FlickrSearch extends React.Component {
state = FlickrStore.getState()
componentWillMount() {
UNSAFE_componentWillMount() {
this.unsubscribe = FlickrStore.subscribe(() => this.handleChange())
}

View File

@ -24,7 +24,8 @@ import ImageSearchActions from './actions/ImageSearchActions'
import ImageSearchStore from './stores/ImageSearchStore'
import ImageSearchItem from './ImageSearchItem'
import SVGWrapper from './SVGWrapper'
import {Spinner, Text} from '@instructure/ui-elements'
import {Text} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {TextInput} from '@instructure/ui-text-input'
import {Button} from '@instructure/ui-buttons'
import {IconSearchLine, IconArrowOpenEndLine, IconArrowOpenStartLine} from '@instructure/ui-icons'

View File

@ -17,7 +17,7 @@
*/
import I18n from 'i18n!courses'
import React from 'react'
import {Spinner} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {View} from '@instructure/ui-layout'
export default function LoadingIndicator() {

View File

@ -21,7 +21,7 @@ import React, {useState, useRef} from 'react'
import {bool, func, string} from 'prop-types'
import {Alert} from '@instructure/ui-alerts'
import {Select} from '@instructure/ui-select'
import {Spinner} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
const noOptionsId = '~~empty-option~~'

View File

@ -19,7 +19,7 @@
import I18n from 'i18n!canvas_lazy_tray'
import React, {Suspense} from 'react'
import CanvasTray from 'jsx/shared/components/CanvasTray'
import {Spinner} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {View} from '@instructure/ui-layout'
// children should be a react `lazy`. This won't work properly otherwise.

View File

@ -21,7 +21,8 @@ import React from 'react'
import {Button} from '@instructure/ui-buttons'
import {View} from '@instructure/ui-layout'
import {Text, Spinner} from '@instructure/ui-elements'
import {Text} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import axios from 'axios'
import {string} from 'prop-types'

View File

@ -18,7 +18,7 @@
import React, {useRef, useState} from 'react'
import CanvasInlineAlert from 'jsx/shared/components/CanvasInlineAlert'
import {Spinner} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
export default function DirectShareOperationStatus({promise, startingMsg, successMsg, errorMsg}) {
const [operationStatus, setOperationStatus] = useState('starting')

View File

@ -21,7 +21,7 @@ import React, {Suspense, lazy, useState, useRef} from 'react'
import {oneOf, shape, string} from 'prop-types'
import {Alert} from '@instructure/ui-alerts'
import {Button} from '@instructure/ui-buttons'
import {Spinner} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {View} from '@instructure/ui-layout'
import CanvasModal from 'jsx/shared/components/CanvasModal'
import {CONTENT_SHARE_TYPES} from 'jsx/shared/proptypes/contentShare'
@ -103,7 +103,7 @@ export default function DirectShareUserModal({contentShare, courseId, ...modalPr
const suspenseFallback = (
<View as="div" textAlign="center">
<Spinner renderTitle={I18n.t('Loading...')} />
<Spinner renderTitle={I18n.t('Loading')} />
</View>
)

View File

@ -21,7 +21,8 @@ import $ from 'jquery'
import axios from 'axios'
import minimatch from 'minimatch'
import {TreeBrowser} from '@instructure/ui-tree-browser'
import {Text, Spinner} from '@instructure/ui-elements'
import {Text} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {Button} from '@instructure/ui-buttons'
import {Mask} from '@instructure/ui-overlays'
import {ScreenReaderContent} from '@instructure/ui-a11y'
@ -37,7 +38,6 @@ import {getRootFolder, uploadFile} from 'jsx/files/utils/apiFileUtils'
import parseLinkHeader from '../parseLinkHeader'
import {showFlashSuccess, showFlashError} from '../FlashAlert'
import natcompare from '../../../coffeescripts/util/natcompare'
/* eslint-disable react/sort-comp */
class FileBrowser extends React.Component {
static propTypes = {
@ -143,13 +143,21 @@ class FileBrowser extends React.Component {
}
getPaginatedData(url, callback) {
axios.get(url).then(response => {
callback(response.data)
const nextUrl = parseLinkHeader(response.headers.link).next
if (nextUrl) {
this.getPaginatedData(nextUrl, callback)
}
})
axios
.get(url)
.then(response => {
callback(response.data)
const nextUrl = parseLinkHeader(response.headers.link).next
if (nextUrl) {
this.getPaginatedData(nextUrl, callback)
}
})
.catch(error => {
/* eslint-disable no-console */
console.error('Error fetching data from API')
console.error(error)
/* eslint-enable no-console */
})
}
folderFileApiUrl(folderId, type = 'files') {
@ -157,21 +165,24 @@ class FileBrowser extends React.Component {
}
populateCollectionsList = (folderList, opts = {}) => {
const newCollections = _.cloneDeep(this.state.collections)
folderList.forEach(folder => {
const collection = this.formatFolderInfo(folder, opts)
newCollections[collection.id] = collection
const parent_id = folder.parent_folder_id || 0
const collectionCollections = newCollections[parent_id].collections
if (!collectionCollections.includes(collection.id)) {
collectionCollections.push(collection.id)
newCollections[parent_id].collections = this.orderedIdsFromList(
newCollections,
collectionCollections
)
}
this.setState(function({collections}) {
const newCollections = _.cloneDeep(collections)
folderList.forEach(folder => {
const collection = this.formatFolderInfo(folder, opts)
newCollections[collection.id] = collection
const parent_id = folder.parent_folder_id || 0
const collectionCollections = newCollections[parent_id].collections
if (!collectionCollections.includes(collection.id)) {
collectionCollections.push(collection.id)
newCollections[parent_id].collections = this.orderedIdsFromList(
newCollections,
collectionCollections
)
}
})
return {collections: newCollections}
})
this.setState({collections: newCollections})
folderList.forEach(folder => {
if (this.state.openFolders.includes(folder.parent_folder_id)) {
this.getFolderData(folder.id)
@ -189,21 +200,23 @@ class FileBrowser extends React.Component {
}
populateItemsList = fileList => {
const newItems = _.cloneDeep(this.state.items)
const newCollections = _.cloneDeep(this.state.collections)
fileList.forEach(file => {
if (this.contentTypeIsAllowed(file['content-type'])) {
const item = this.formatFileInfo(file)
newItems[item.id] = item
const folder_id = file.folder_id
const collectionItems = newCollections[folder_id].items
if (!collectionItems.includes(item.id)) {
collectionItems.push(item.id)
newCollections[folder_id].items = this.orderedIdsFromList(newItems, collectionItems)
this.setState(function({items, collections}) {
const newItems = _.cloneDeep(items)
const newCollections = _.cloneDeep(collections)
fileList.forEach(file => {
if (this.contentTypeIsAllowed(file['content-type'])) {
const item = this.formatFileInfo(file)
newItems[item.id] = item
const folder_id = file.folder_id
const collectionItems = newCollections[folder_id].items
if (!collectionItems.includes(item.id)) {
collectionItems.push(item.id)
newCollections[folder_id].items = this.orderedIdsFromList(newItems, collectionItems)
}
}
}
})
return {items: newItems, collections: newCollections}
})
this.setState({items: newItems, collections: newCollections})
}
formatFolderInfo(apiFolder, opts = {}) {
@ -253,6 +266,7 @@ class FileBrowser extends React.Component {
const sortedIds = ids.sort((a, b) => natcompare.strings(list[a].name, list[b].name))
return sortedIds
} catch (error) {
// eslint-disable-next-line no-console
console.error(error)
return ids
}
@ -262,7 +276,7 @@ class FileBrowser extends React.Component {
return this.onFolderClick(folder.id, folder)
}
onFolderClick = (folderId, folder) => {
onFolderClick = (folderId, _folder) => {
const collection = this.state.collections[folderId]
let newFolders = []
const {openFolders} = this.state
@ -377,7 +391,7 @@ class FileBrowser extends React.Component {
if (this.state.uploading) {
return (
<Mask>
<Spinner className="file-browser__uploading" renderTitle={I18n.t('File uploading')} />
<Spinner renderTitle={I18n.t('File uploading')} />
</Mask>
)
} else {
@ -387,13 +401,7 @@ class FileBrowser extends React.Component {
renderLoading() {
if (this.state.loadingCount > 0) {
return (
<Spinner
className="file-browser__loading"
renderTitle={I18n.t('Loading folders')}
size="small"
/>
)
return <Spinner renderTitle={I18n.t('Loading folders')} size="small" />
} else {
return null
}
@ -431,4 +439,3 @@ class FileBrowser extends React.Component {
}
export default FileBrowser
/* eslint-enable react/sort-comp */

View File

@ -40,7 +40,6 @@ exports[`FileBrowser renders 1`] = `
/>
<Spinner
as="div"
className="file-browser__loading"
renderTitle="Loading folders"
size="small"
variant="default"

View File

@ -20,7 +20,8 @@ import React, {Component} from 'react'
import {func, instanceOf} from 'prop-types'
import {CloseButton} from '@instructure/ui-buttons'
import {Flex, View} from '@instructure/ui-layout'
import {Heading, Spinner} from '@instructure/ui-elements'
import {Heading} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {Tray} from '@instructure/ui-overlays'
import I18n from 'i18n!speed_grader'

View File

@ -24,7 +24,8 @@ import I18n from 'i18n!last_attended'
import {View} from '@instructure/ui-layout'
import {DateInput} from '@instructure/ui-forms'
import {Text, Spinner} from '@instructure/ui-elements'
import {Text} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {ScreenReaderContent} from '@instructure/ui-a11y'
import {showFlashError} from '../shared/FlashAlert'
@ -114,8 +115,7 @@ export default class StudentLastAttended extends React.Component {
<View display="block" margin="small">
<Spinner
margin="small 0"
display="block"
title={I18n.t('Loading last attended date')}
renderTitle={I18n.t('Loading last attended date')}
size="small"
/>
</View>

View File

@ -18,7 +18,7 @@
import React from 'react'
import axios from 'axios'
import {Spinner} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import I18n from 'i18n!webzip_exports'
import splitAssetString from 'compiled/str/splitAssetString'
import ExportList from './components/ExportList'

View File

@ -19,7 +19,7 @@
import React from 'react'
import ReactDOM from 'react-dom'
import TestUtils from 'react-dom/test-utils'
import {Spinner} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {mount} from 'enzyme'
import DeveloperKeysApp from 'jsx/developer_keys/App'

View File

@ -23,7 +23,7 @@ import {mount} from 'enzyme'
import {Alert} from '@instructure/ui-alerts'
import {FormFieldGroup} from '@instructure/ui-form-field'
import {Spinner} from '@instructure/ui-elements'
import {Spinner} from '@instructure/ui-spinner'
import {DEFAULT_LATE_POLICY_DATA} from 'jsx/gradebook/default_gradebook/apis/GradebookSettingsModalApi'
import LatePoliciesTabPanel from 'jsx/gradebook/default_gradebook/components/LatePoliciesTabPanel'