f7Link()
icon now expects f7Icon()
. label is not mandatory anymore.updateF7Radio()
. Fixes #135. Thanks @korterling.f7Dialog()
has a fixed height of 300px and vertical overflow to avoid issues....
to f7SmartSelect()
.options
to f7SearchBar()
to provide more configuration. Fixes #47: thanks @rodrigoheck.valueText
param for f7Gauge()
. Fixes #84: thanks @tanho63.f7Gauge()
JS code (no user impact).f7SmartSelect()
.insertF7Tab()
are losing reactivity.f7DatePicker()
visibility issue. Thanks @styvens.f7Button()
with link not working. Thanks @bwganblack.f7SmartSelect()
on selection. Thanks @dewalex.This release is to addresses the following reverse dependency issue with shiny. Moreover, it also starts the road to v1.0.0 (later this year).
f7AddMessages()
will become updateF7Messages()
in future releasef7HideNavbar()
and f7ShowNavbar()
will be replaced by updateF7Navbar()
f7ShowPopup()
will become updateF7Popup()
f7checkBox()
will become f7Checkbox()
f7checkBoxGroup()
will become f7CheckboxGroup()
f7ValidateInput()
will become validateF7Input()
f7InsertTab()
and f7RemoveTab()
will becomes insertF7Tab()
and removeF7Tab()
,
respectivelyf7ShowPreloader()
and f7HidePreloader()
will become showF7Preloader()
and
hideF7Preloader()
, respectively.f7Popover()
and f7PopoverTarget()
replaced by addF7Popover()
and toggleF7Popover()
create_manifest()
is going to be replaced by the workflow described here: https://unleash-shiny.rinterface.com/mobile-pwa.html#charpente-and-pwa-toolsupdateF7Fabs()
: inputId becomes idf7Appbar()
: left_panel becomes leftPanel and right_panel rightPanelf7Init()
removed. Now pass it through the f7Page()
optionsf7Navbar()
: left_panel becomes leftPanel and right_panel rightPanelf7Panel()
and updateF7Panel()
: inputId becomes idf7InsertTab()
and f7RemoveTab()
: inputId becomes idf7ExpandableCard()
and f7Card()
: img becomes imagef7SocialCard()
: author_img becomes imagef7ListItem()
: url becomes hreff7VirtualListItem()
: url becomes hrefupdateF7VirtualList()
: old_index and new_index become oldIndex and newIndex, respectivelyf7Toast()
, updateF7Progress()
, ... and has been
swapped at the end of the parameters for more conveniencef7Dialog()
: inputId becomes idupdateF7Sheet()
: inputId becomes idf7Link()
: external has been removed from (much simpler), src becomes hreff7Button()
: src becomes hreff7Gauge()
and not mandatory. Default to shiny::getDefaultReactiveDomain()
f7Chip()
: icon_status becomes iconStatus, img becomes imagef7Accordion()
and updateF7Accordion()
f7ProgressInf()
(useless)f7Swiper()
API. New options parameterf7PhotoBrowser()
is now called from the shiny server function. See help, id and
label have been removedf7Searchbar()
updateF7Entity()
updateF7ActionSheet()
addF7Tooltip()
and updateF7Tooltip()
to generate tooltips from the serverf7Page()
so that we doesn't oblige users to create a PWAf7Page()
has a new options parameter as replacement of f7Init()
. Much simpler to handlef7Menu()
, f7MenuItem()
, f7MenuDropdown()
, f7MenuDropdownDivider()
and updateF7MenuDropdown()
: special buttons and dropdown elements, behaving like action buttonsf7PhotoBrowser()
updateF7SmartSelect()
: thanks @Edireitoshiny:disconnect
occurs. Gives ability to reload or reconnecthtmltools::attachDependencies()
in create_app_ui
f7Searchbar()
since it messes up with tabbar navigation. This does
not have any impact on user experience. In a future release of shinyMobile, f7Searchbar()
will have input binding associated as well as more parameters for configurationf7SmartSelect()
: type param becomes openIn to align with other inputsf7Messages()
: messages are updated on the server side with f7AddMessages()
. New f7MessageBar()
to send messages from the server side.f7ActionSheet()
: to access the currently selected button, use input$[sheet_id]_button. This is to make action sheets compatible with shiny modules. Moreover, the buttons provided
must be included in a list (not in a dataframe)f7Sheet()
is still inserted in the UI side but can be triggered either on the server side in combination with updateF7Sheet()
(see example) or on the UI side. Overall, this improves flexibility since user may choose any trigger element. In practice, any element having data-sheet
pointing to the sheet id as well as the "sheet-open" css class may open it, instead of having a default trigger contained in the sheet. A use case may be to open a sheet in the tabbar (the trigger would be a f7TabLink()
that is a special button styled for the tabbar)session
is now optional and has been moved to the last position in function callf7AutoComplete()
: type becomes openIn to align with the framework7 documentationf7Icon()
(not used)f7Popup()
. It has now an input associated giving the popup state (opened or closed) as well
as new parameters: backdrop, closeByBackdropClick, closeOnEscape, animate and swipeToClose.
label parameters has been removed. To create an f7Popup()
put the f7Popup()
tag in you UI. On the server side call f7TogglePopup()
. See documentation for a detailed example. Thanks @pasahef7NavbarHide()
renamed to f7HideNavbar()
for consistancyf7NavbarShow()
renamed to f7ShowNavbar()
for consistancyf7Gauge()
valueText was removed. It does not make sense that the value can be accidentally
different from the text displayed. valueText is then an internal parameter.f7DatePicker()
: min becomes minDate, max becomes maxDate and format becomes dateFormatf7Appbar()
input$shinyInfo
and input$lastInputChanged
(see shinyMobile tools vignette for more details)f7SmartSelect()
has input binding as well as an update function updateF7SmartSelect()
f7VirtualList()
, f7VirtualListItem()
, updateF7VirtualList()
: high performance list with caching system -> faster rendering (up to 10x faster than f7List()
). Ability to add item(s), remove item(s), move item, filter items, ...f7TabLayout()
. This allows to use the f7Messagebar()
in a tabs layout configuration.f7ValidateInput()
function to validate input from the server side (similar to
shinyFeedback but internal to shinyMobile and without dependencies)f7Login()
and updateF7Login()
feature to provide UI boilerplates
for authenticationf7Tabs()
may be used as standalone components with the style argument (segmented or strong). toolbar has the default behavior.f7Icon()
and icons dependencies. thanks @pvictorupdateF7DatePicker()
: thanks @pvictorf7Fabs()
to get the status of the containerupdateF7Button()
and updateF7Fabs()
f7Init()
. Pull the screen from top to bottom fires input$ptr
which becomes TRUE. When the pull to refresh event is finished, input$ptr
is NULL. Useful to trigger events in an observeEventupdateF7Select()
: thanks @Seyphaton for the suggestionf7TogglePopup()
to close/open a f7Popup()
. Thanks @pasahepreview_mobile()
: function that previews your app in a seleted range of
devices (iphone, samsung, htc, ...)f7File()
for file upload. See shiny fileInput
f7DownloadButton()
to work properly with the shiny downloadHandler
function. Thanks @bwganblack for the reportf7Init()
to control the delay necessary to trigger
a long press (default to 750 ms)f7ShowPreloader()
and f7HidePreloader()
f7TextArea()
input and updateF7TextArea()
on the server sidef7checkBoxGroup()
and f7Radio()
f7TabLink()
(special link to insert in f7Tabs()
that may open a f7Sheet()
)f7Button()
f7Segment()
f7Popup()
+ rewrite js binding. Thanks @pvictorf7DatePicker()
: direction, openIn,
scrollToInput, closeByOutsideClick, toolbar, toolbarCloseText,
header and headerPlaceholderupdateF7Gauge()
. Thanks @rodrigoheck for the suggestionf7Slider()
to prevent wrong behaviour when used in f7TabLayout()
f7Select()
does not rely anymore on the shiny selectInput binding (does not have impact on user experience)f7Tab()
: allows to navigate through hidden tabs without displaying them
in the tab menu. Thanks @rodrigoheckf7AutoComplete()
f7Picker()
and updateF7Picker()
: rotateEffect, openIn, scrollToInput, closeByOutsideClick, toolbar, toolbarCloseText and sheetSwipeToClosef7Icon()
f7Select()
updateF7Slider()
f7Slider()
f7Slider()
labels (remove enableLabels param)updateF7Slider()
f7Slider()
updateF7Stepper()
f7Stepper()
: add 2 more parameters (decimalPoint and buttonsEndInputMode)f7Init()
. This improves perfomances
on old devicesf7SingleLayout()
example (replace sliderInput by f7Slider)f7SplitLayout()
example (replace sliderInput by f7Slider)f7TabLayout()
exampleupdateF7AutoComplete
: text input was not updated. Thanks @sanchez5674 for the reportf7Page()
. Thanks @ pvictorf7Sheet()
wrong css style applied when multiple sheets are in the same appf7Tabs()
: if one put f7Tabs()
inside a f7Tab()
in a parent f7Tabs()
, the input binding was giving the wrong tab for the top level tabset (once we clicked in the tab containing the sub-tabset).f7InsertTab()
and f7RemoveTab()
when swipeable is TRUEf7Tabs()
on click. This allows to use f7Tabs()
without swipeable and animatedf7Panel()
(need to provide the f7Panel()
inputId)f7Swipeout()
to make the current tab swipping if in f7TabLayout()
f7Fab()
label white background color in dark modef7Navbar()
would center the body content on scroll, due to a css conflictf7Slider()
and f7TabLayout()
: When setting value of a slider in a swipeable f7TabLayout it cause the tab to be swip. This describe here : framework7io/framework7#2603. Thanks @pvictorf7DatePicker()
format for months. Thanks @kmaheshkulkarnif7DatePicker()
: the viewport does not scroll to input by defaultf7AutoComplete()
examplef7Popup()
. Thanks @pasahef7Popup()
. Now f7Popup()
triggers shiny output rendering. Thanks @pasaheupdateF7Gauge()
-> wrong fraction for semi circle gauges.f7Stepper()
: some options were not properly initialized (max, min, ...)f7Slider()
example 2: wrong argument in helpf7Icon()
example: wrong function namef7Row()
examplef7Sheet()
: hiddenItems is NULL by defaultf7Appbar()
NEWS.md
file to track changes to the package.